問題タブ [oracle-call-interface]
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.
php - 致命的なエラー: 未定義関数 oci_connect() の呼び出し
次の行のコメントを外しています (php.ini 内):
そして、このファイルをダウンロードしinstantclient-basiclite-nt-11.2.0.2.0.zip
て解凍し、ドライブDに配置しました...
Windows XP を使用しています
次のように環境変数を設定します。
しかし、oci_connect()
関数を実行すると、次のエラーが表示されます。
致命的なエラー: ... で未定義の関数 oci_connect() を呼び出します
そして、erroeLogファイルで次の警告を見つけました:
[29-Dec-2011 00:36:39] PHP 警告: PHP の起動: 動的ライブラリ 'c:\php\ext\php_oci8.dll' を読み込めません - 指定されたモジュールが見つかりませんでした。行 0 で不明
[29-Dec-2011 00:36:39] PHP 警告: PHP の起動: 動的ライブラリ 'c:\php\ext\php_oracle.dll' を読み込めません - 指定されたモジュールが見つかりませんでした。
database - QtビルドOCIプラグイン
WinXpでQtを使用してOracleDBに接続しようとしています。Qtの指示に従ってQSqlを使用するために、DBアクセス用のQtプラグインをビルドするために必要なソースをダウンロードしました(QOCIが必要です)。Qtのドキュメントによると、次のコマンドを実行する必要があります。
しかし、次のエラーが発生します。
ubuntu - PDO_OCI: ドライバーが見つかりませんでした
今日、私の問題は PDO、OCI8、および PDO_OCI に関連しています。しかし、最初から。
Ubuntu 11.10 と PHP バージョン: 5.3.8-1ubuntu3 を使用しています。Oracle 10g Express をインストールして構成したところ、正常に動作しました。私がしなければならなかった次のステップは、Oracle と PDO の統合でした。だから私はこのリンクを見つけました:http://lacot.org/blog/2009/11/03/ubuntu-php5-oci8-and-pdo_oci-the-perfect-install.htmlそしてそれを段階的に実行します(PDOをインストールせずに、これは pdo_mysql で以前にインストールされました)。Ubuntu 10.10 で実行しようとしたとき、動作していました。現在、11.10 で、Web サイト アプリケーションを開こうとすると、「ドライバーが見つかりませんでした」というエラーが表示されます。
phpinfo() を確認したところ、PDO の行に次のようなものがあります。PDO サポート - 有効、PDO ドライバー - mysql。このセクションには oci については何もありませんが、その下のいくつかの行では、OCI 8 以降の PDO ドライバーが有効になっています。
誰かがこれを手伝ってくれることを願っています。よろしく、マテオ。
php - PHP oci_bind_by_name float から数値へ
浮動小数点数を OCI ステートメントにバインドする必要があります。
私がやっていること:
私のOracle DBでは、「価格」はストアドプロシージャの引数であり、そのタイプはNUMERICです。
ステートメントを実行した後、次のエラーが発生します。
メッセージ: oci_execute() [function.oci-execute]: ORA-06502: PL/SQL: 数値または値のエラー: 文字から数値への変換エラー ORA-06512: 行 1
$price が整数の場合、すべて正常に動作します。PHP ドキュメントhttp://lv.php.net/manual/en/function.oci-bind-by-name.phpでは、5 番目のパラメーター (int $type = SQLT_CHR) の float の特別な型が見つかりませんでした。
回答が見つかりました: OS の小数点記号を "," から "." に変更しました。そして今、すべてが正常に動作します
php - php: バインドなしで pdo が clob を読み取る
出力:
どうすればこれを読むことができますか?私は試します:
しかし何もない
と
時々、いくつかの小さなテキストを読みます。パラメーターをバインドせずに、すべての SQL-s からジェネリック コードを使用したいと思います :(
oracle - Oracleの日付でバインド変数を正しく使用しますか?
Oracle でバインド変数を日付とともに正しく使用することに戸惑っています。これは、データベース内または PL/SQL を使用する場合ではなく、to_date関数を使用して日付を文字列として渡す必要がある OCI インターフェースを介して Oracle と対話する場合です。
バインド変数を適切に使用するための正しいアプローチは、次のようにすることだと思いました。
ただし、日付形式がバインドを使用して行われていないアプローチを見てきたため、少し混乱しています。
誰でもこれを確認したり、最善のアプローチを提案したりできますか?
php - Oracle 11.1.0.7 および WAMP oci_connect の失敗
ローカルの WAMP サーバーと、所有している Oracle 11.1.0.7 の間の単純な接続を構成しようとしています。どうやらPHPには、起動に失敗するあらゆる種類のソリューションと魔法のような状況があります。
WAMP から最新の 32 ビット バージョンを実行しています (確認のため、今日もう一度取得しました) db マシンも 32 ビットであり、ローカルではありません
同じエラーが発生するたびに、データベースに接続しようとしたのは次のとおりです。
OCIに関するその他の情報
誰かが私に欠けているものを教えてくれたら嬉しいです
c++ - OCI_SUCCESS_WITH_INFO で OCILogon 後に OCI_INVALID_HANDLE を取得する
以下のプロフィールを作成しました。
コマンド プロンプトからログインしようとすると、次のエラー メッセージが表示されて正常にログインします。
それまでは元気です。
ただし、OCI ログインといくつかのアクション用の小さなプログラムを 1 つ作成しました。
上記のユーザーで OCILogon を呼び出すと、 addresses という 1 が返されますOCI_SUCCESS_WITH_INFO
。
OCI_HTYPE_SVCCTX
その後、それを使用して取得しようとすると、どのアドレスOCIAttrGet
が返されますか。-2
OCI_INVALID_HANDLE
ハンドルが破損するのはなぜですか? この問題を克服し、猶予期間が終了するまで機能する方法はありますか?
以下のサンプル OCI クライアントを見つけてください。
c - ORA-01008: 一部の変数がバインドされていません(C w OCIで)
ストアド プロシージャを使用して 2 つの文字列をデータベースに挿入する次の C コードがあります。
printf("クエリ: %s",クエリ); //これは、上記のバインドを行ったときに param1 と param2 が置き換えられていないことを示しています
私が得るエラーは次のとおりです。
ORA-01008: 一部の変数がバインドされていません
上記のコードで概説されている printf は、次の出力を出力します。
クエリ: BEGIN bns_saa_message_insert (:1, :2); 終わり;
質問
このエラーを修正するにはどうすればよいですか?
編集
同様の質問がC#またはJavaでここで回答されているのを見ましたが、C
「ORA-01008:すべての変数がバインドされていません」エラー
ORA-01008:すべての変数がバインドされていません。彼らは縛られています
c++ - 単純なクエリは、強制終了された/非アクティブなセッションで実行するのに数分かかります
Oracle 8 11 データベースと通信するアプリケーションに単純なフェイルオーバー機能を追加しようとしています。セッションがアップしていることをテストするために、単純なクエリを発行します (デュアルから 1 を選択)。
ここで、「alter system kill session 'sid,serial';」を実行して Oracle セッションを強制終了し、ネットワークの停止をシミュレートしようとすると、このテスト クエリを実行すると、アプリケーションがそれを処理して Execute メソッドからエラーを返すまでに最大 5 分かかります (私は OCI API、C++ を使用しています)。
Tue Feb 21 21:22:47 HKT 2012: テスト クエリとの接続を確認しています...
Tue Feb 21 21:28:13 HKT 2012: 警告 - OCI_SUCCESS_WITH_INFO: 3113: ORA-03113: 通信チャネルのファイルの終わり
Tue Feb 21 21:28:13 HKT 2012: テスト接続に失敗しました。接続を再確立しようとしています...
クエリの最後に「immediate」キーワードを使用してセッションを強制終了すると、テスト クエリは即座にエラーを返します。
質問 1: クエリの実行に 5 分かかるのはなぜですか? この遅延中に何が起こっているかを明らかにできる Oracle/PMON ログはありますか?
質問 2: ネットワーク障害をシミュレートするために「alter system kill session」を使用するのは良い選択ですか? このクエリの結果は、アプリケーションと Oracle DB の間の実際のネットワーク障害にどの程度近いでしょうか?
アップデート:
オラクルのバージョン:
Oracle Database 11g Enterprise Edition リリース 11.2.0.2.0 - 64 ビット製品
パーティショニング、OLAP、データ マイニング、および Real Application Testing オプションを使用