問題タブ [oci8]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
362 参照

ruby - Ruby OCI8 DBI、パラメーターのバインド後に生成されたクエリを確認する方法は?「in」クエリをチェックする必要があります

Ruby-DBIを使用しているときに、「in」クエリのパラメータバインディングに関する問題に直面しています。2つの質問:

  1. パラメータのバインド後にSQLを生成するにはどうすればよいですか?
  2. inDBIとOCI8を使用している場合、SQLのパラメーターは正しく機能しますか?

私のコードは次のようになります:

クエリは次のようになります。

助けてください。

0 投票する
1 に答える
293 参照

ruby - ruby shoes oci8 connectの問題

私の英語でごめんなさい。

ルビー シューズ GUI の開発に興味がありますが、私の実験では、Oracle データベースに接続できませんでした。次のようなコードでファイルを作成しました。

したがって、コンソールから実行すると:

すべて問題ありませんが、実行すると:

私は得るuninitialized constant Object::OCI8 error

手助け?

0 投票する
1 に答える
976 参照

php - OCI-Lob-> closeがINOUTパラメータに対して機能しないのはなぜですか?

LOBとOCI8PHP拡張機能に関して読んだドキュメントから、$lob->close()を使用したので、以下のコードを呼び出す必要があるよう$lob->writeTemporary()です。$lob->close()INパラメーターを受け入れるストアード・プロシージャーにLOBを渡す場合は正常に機能しますが、IN OUTパラメーターを受け入れるストアード・プロシージャーにLOBを渡す場合は機能しません。

明らかに$lob->close()、IN OUTパラメーターの呼び出しを省略できますが、なぜそうする必要があるのか​​知りたいです。誰かが次のエラーを生成する原因となる以下のコードで何が起こっているのか説明してもらえますか?どんな洞察も大歓迎です。

OCI-Lob :: close()[oci-lob.close]:ORA-22289:開いていないファイルまたはLOBに対して%s操作を実行できません

手順は次のp_clob_in_outようになります。


Vincent Malgratの回答のおかげでさらに読むと、これが起こっていると思います...私のPHPコードでは、$lob変数は渡される一時LOBです。その一時LOBは、プロシージャによって変更され、そのコピーが作成されます。 。次に、コピーが渡され、$lob変数が置き換えられます。このwriteTemporaryメソッドはLOBのコピーで呼び出されなかったため、呼び出す$lob->close()と失敗します。最初に作成された(私が呼び出すことができる$lob->close())元のLOBには、PHPスクリプトからアクセスできなくなりました。

このページの「NOCOPYの制限」では、「サブプログラムがデータベースリンクを介して、または外部プロシージャとして呼び出された場合」、NOCOPYは無視されると記載されているため、NOCOPYヒントはここでは当てはまらないと思います。このページによると、ストアドプロシージャを呼び出しているPHPスクリプトの匿名ブロックは、外部プロシージャと見なされるようです。

0 投票する
1 に答える
2431 参照

php - 多次元配列を Oracle ストアド プロシージャに渡す

カスタムタイプのSPがあります:

PHP (oci8) からこのプロシージャ (多次元配列を渡す) を使用するにはどうすればよいですか?

ありがとう、

アップデート:

これは、Ruby でこれを実行するコードです。

0 投票する
1 に答える
144 参照

php - 最新バージョンに基づく個別のレコード

エントリのコメントを一覧表示し、ユーザーが既存のコメントを編集できるようにし、それらのリビジョンを追跡します。

テーブル構造:

コメント: ID、概要

リビジョン: comment_id、revision_id、タイムスタンプ

Revisions.comment_id = コメント.id

Revisions.revision_id = 新しいコメントの ID、詳細な説明: 既存のコメントを選択すると、編集フォームが表示され、新しいコメントを入力して送信できます。それを新しいコメントとしてコメント テーブルに挿入し、そのテーブルから最後の ID を取得して、リビジョン テーブルで Revision_id として設定します。

リビジョン テーブルで個別の選択を実行したい (複数の comment_id、revision_id をアプリケーション内で使用する配列に取得するため):

例えば:

しかし、最新のコメント (revisions.timestamp) に基づいて適切なレコードを選択することは可能ですか?

理論的には:

タイムスタンプが最も大きいリビジョンから個別の comment_id を選択します

リビジョン テーブルの例:

この 4 行の例では、クエリが 2 行を返すようにします。

それは:

comment_id = 2、revision_id = 12 タイムスタンプ = 20120222180000

comment_id = 5、revision_id = 19 タイムスタンプ = 20120222200000

更新:これでうまくいくようですが、もっと良い方法があれば教えてください

更新:revision_idも含める必要があります。上記のクエリにはcomment_idとtimestampのみが含まれます

これでできました:

0 投票する
1 に答える
3941 参照

php - Error compiling OCI8 with pecl

When I want to install ico8 with pecl I get the following error.

I'm running MAMP (PHP5.3.6), using a Mac OS X lion. PEAR & pecl seem to be installed correctly.

I have been looking for hours and can't seem to fix it and can't seem to find any information on it. Anybody an idea?

0 投票する
1 に答える
6324 参照

ruby-on-rails - ActiveRecord oracle_enhanced アダプタが ruby​​-oci8 ライブラリをロードできませんでした

rails g scaffold失敗しましたが、oci スクリプトと irb データ クエリは機能しました。何が問題なのかわかりませんでした。

gem list:

戻り値0.86E2

Gemfile:

IRB 経由:

0 投票する
0 に答える
440 参照

php - RedhatLinuxでのMysqliとOCI8のアクティベーション

私はWebの初心者開発者であり、次のような状況にあります。

私の顧客の1人は、Redhat Linuxサーバーでmysqliおよびoracle(oci8)のphp拡張機能を「アクティブ化」したいと考えています。実際の目標は、リモートのUnixサーバー上にあるリモートのOracleデータベースと通信(接続)できるようにすることです。

これらの要件を実装するには、何をする必要がありますか?

また、Redhatサーバーへのリモートアクセスしかできないため、コマンドラインでアクションを使用できる必要があることにも注意してください。

前もって感謝します。

ps:Redhatサーバーにはすでに次のものがインストールされています:Oracle 10g.2 php 5.1.6 Apache 2.2.3

0 投票する
1 に答える
414 参照

php - SQLのphp oci_executeパターン

私はオラクルのphpで簡単なクエリを持っています:

これは oci_parse を問題なく通過します....

しかし、oci_execute が条件の「無効な識別子」でチョークしないようにするために必要な変換があります。次のように、ステートメントから "and u.username!="foo" and c.event > '2012-01-01'" を削除すると、上記のクエリは正常に機能します。

oci_execute に渡されるユーザーと日付の条件を取得するためのステートメントを構成する適切な方法は何ですか?

0 投票する
1 に答える
655 参照

ruby-on-rails - インジェクションから保護するRails OCI8

外部の Oracle データベースからのデータを事前入力したい Web フォームを作成しています。Rails OCI8 プラグインを使用しています。

クエリで URL パラメーターを直接使用することで、インジェクションの危険にさらされないようにしたいと考えています。

たとえば、コントローラーでは次のようになります。

ご覧のとおり、params[:provider] は OCI8 クエリに直接渡されます。

Cursor_exec 関数

OCI8はバインドを介してパラメータを適切にサニタイズしますか、またはより安全にするために使用できる方法はありますか?