問題タブ [ora-03114]
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.
oracle - DBExpress を使用して Oracle 10g で 255 レコードの挿入制限を受けているのはなぜですか?
通常の SQL 処理中に壁にぶち当たります
DBEXPRESS を使用してリモート クライアントから Oracle 10g に接続する場合 - 標準の dbxpora.dll + oci.dll を使用
トランザクション中、ちょうど 255 回のレコード挿入の後、接続が 30 秒間ハングし、次のエラーが返されます。
ORA-03114 (接続が失われたかのように...)
これは、トランザクション中に任意のテーブルに 255 レコードを挿入すると発生します。(db ボックスでローカルに実行すると、すべて正常に動作します)
足りないものはありますか?
oracle - OPEN-FOR-USING ステートメントでのバインディングの問題
関数の引数を使用して動的に生成している ORACLE 関数にカーソルがあります。
カーソルのテキストを定義し、場合によっては次のステートメントを含めます。
カーソルを開き、ORACLE OPEN-FOR-USING ステートメントを使用して引数を渡します (たとえば、:logsetmax を 3 に設定し、:logset を 0 に設定します)。
プログラムに上記の制約が含まれていると、プログラムがハングし、ORA-03113 および ORA-03114 エラーが発生します。
ORACLE は、(USING で渡された):logsetmax のカーソル引数をカーソル宣言の MOD 関数にバインドすることを妨げており、この予測できない動作を引き起こしていますか?
私のエラーは、ORACLE 接続のタイムアウトを引き起こしているバインドされていない引数によるゼロ除算によるものと思われますか?
どんな提案でも大歓迎です。
アップデート
実用的な解決策として、SQL を修正してカーソル バインドからこれらの制約を削除し、次のように SQL にハード コードしました。
python - 非常に巨大なログファイルのロード中にOracleSQLローダーエラーが発生しました
ディレクトリ内のログファイルをループし、oraclesqlloaderを使用してログファイルをoracleデータベースにロードするPythonスクリプトがあります。スクリプトは正しく機能し、sqlloaderも機能します。
ただし、約200kレコードをロードした後、この例外を除いてロードは失敗します。
なぜこれが発生しているのかわかりません。テーブルの表スペースに対応するデータ・ファイルを確認しましたが、自動拡張がtrueに設定されています。他に何が理由でしょうか?
「sqlldr」コマンドでは、rows=1000およびDirect=Trueであるため、ロードされた1000レコードごとにコミットします。この数を変えてテストしましたが、同じエラーが発生します。
oracle - ORA-03114レポートを取得する
いくつかのOracleReportsを使用しているときに、次のエラーが発生する理由を知っていますか?
「FRM-40735:ON-ERRORトリガーで未処理の例外ORA-03114が発生しました」
これは、数人のユーザーに時々発生します。
oracle - ORA-03113: ~ 2 時間 10 分後に通信チャネルでファイルの終わり
プロシージャを含むSQLスクリプトがあります。を使用して実行します
sqlplus -s @script.sql logfile.log myparam1 myparam2
しかし、〜2時間10分後、スクリプトは次で終了します
次のtcp設定があります
スクリプトの実行中に、TCP 接続が確立されていることを確認しましたが、データベース側 (データベース サーバー マシン) にはそのような接続はありませんでした。
私の理論では、何らかの形でデータベース サーバーが接続を切断しているということです。そして、システムが 2 時間 (7200 秒) 後に最初のキープアライブ プローブを送信すると、接続がアクティブでなくなったことを検出し、接続を閉じてスクリプトが戻ります。
なぜデータベース システムが接続を切断するのか理解できません。冗長性を高めるためにデータベースの最後に設定はありますか? それとも、これはいくつかのファイアウォール設定に関連している可能性がありますか? また、2 時間 10 分では、2 時間部分が tcp_keepalive_time から来ていると推測できます。これは 10 分部分になります。データベース側の再試行はありますか?
編集:DBAと私は問題を調べました.TCP接続が私の側で確立されているのを見て、彼は私の側からの接続を見ていませんでした.