問題タブ [ora-24338]
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.
sql - dblink を介してストアド プロシージャを呼び出す
データベース リンクを介してストアド プロシージャを呼び出そうとしています。コードは次のようになります。
package_name が属する同じ DB インスタンスとスキーマからこれを実行すると、問題なく実行できます。ただし、データベース リンクを介してこれを実行すると (ストアド プロシージャ名などに必要な変更を加えて)、Oracle エラーが発生します: ORA-24338: ステートメント ハンドルが実行されませんでした。
dblink 上のこのコードの修正版は次のようになります。
asp.net - .Net Oracle ORA-24338 'ステートメント ハンドルが実行されていません' エラーと 1 つのストアド プロシージャでのエラー
次のストアドプロシージャがあります
と
そして、私はこのコードでアプリケーションからそれらを呼び出しています:
この例では、WEB_AC SP
常に sp を実行します。WEB_UPDOC1C6
これには2つの問題があります。
最初の問題:アプリケーションのある時点で、valor
(Visual Basic 関数の) パラメーターをスペースを含む文字列として持っています。これは、「スペースを含む文字列」のようなものです。この場合、ストアド プロシージャはテーブルを更新しません。DBで(SQL Developerを使用して)SPを直接実行すると、すべて正常に動作します。いくつかの引用符( ')が欠落している文字列と関係があることは知っていますが、まだ機能させていません。これに関するいくつかのアイデアはありますか?
2 番目の問題:アプリケーションのデバッグ中に実行を中断すると、再度実行しようとするたびにORA-24338 'ステートメント ハンドルが実行されていません' エラーが何時間も発生することがあります。オープントランザクションと関係があると思います。しかし、正直なところ、私は Oracle を使用するのは初めてなので、何が問題なのかまったくわかりません。
手伝って頂けますか?
更新: ORA-24338 の本当の理由を見つけました。エラーの原因となったのは別の SP でした。他の問題の解決策を見つけたら、ここにすべて投稿します。
oracle - データベースリンクを介したResultSet/RefCursorの取得
dblinkを介してストアドプロシージャを呼び出すための回答から、リモートDBリンクを介してSP呼び出しを行っている場合、ストアドプロシージャを呼び出してResultSet/RefCursorを取得することはできないようです。Oracle10gも使用しています。
リンク全体で単一値の結果を正常に取得でき、SPを正常に呼び出してローカルで結果を取得できますが、リモートDBからResultSetを読み取るときに、同じ「ORA-24338:ステートメントハンドルが実行されません」というエラーが発生します。
私の質問-ストアドプロシージャを使用するための回避策はありますか?共有ビューはより良い解決策ですか?パイプ行?
サンプルストアドプロシージャ:
ローカルでは機能するがリモートでは機能しないサンプルJavaコード:
sql - データベースリンクを使用してOracle関数を呼び出す
リモート データベースで呼び出される Oracle 関数を作成し、getEmployee(id in varchar)
データベース リンクを使用してローカル データベースから呼び出そうとしています。
ではgetEmployee
、従業員データを含むカーソルを返そうとしています。 (テーブル: 従業員 (ID、名前、住所)):
列名 (ID、名前、アドレス) で結果セットを取得するにはどうすればよいですか?
Contrad によると、ローカル関数を次のように変更しました。
しかし、Java コードからこの関数を呼び出すと、次のエラーが発生します。
「ORA-24338: 文ハンドルが実行されていません」
sql - Java からの Oracle 関数の呼び出し
リモート データベースで呼び出される Oracle 関数を作成し、getEmployee(id in varchar)
データベース リンクを使用してローカル データベースから呼び出そうとしています。
ではgetEmployee
、従業員データを含むカーソルを返そうとしています。 (テーブル: 従業員 (ID、名前、住所)):
しかし、Java Code からこの関数を呼び出すと、ORA-24338: statement handle not executed
エラーが発生します。ここに私のリモート機能があります:
ここに私のJavaコードがあります: