一時テーブルにデータを設定し、その一時テーブルから選択するストアド プロシージャを実行します。
P粉551084295
P粉551084295 2023-09-09 14:20:33
0
1
467

グローバル一時テーブルにデータを設定するストアド プロシージャがあります。

リーリー

ストアド プロシージャを実行して、一時テーブルに追加された行を選択したいと考えています。

リーリー

このコードは行を取得しません。そこで、データベースへの同じラウンドトリップで選択内容を入れることにしました:

リーリー

これによりエラーが発生します:

リーリー

BEGIN ... END; の中に SELECT を入れると、次のエラーが発生します:

リーリー

一時テーブルにデータを設定し、そこから選択するストアド プロシージャを PHP で実行するにはどうすればよいですか?

SQL Developer では動作しますが、PHP では動作しません。

###使用:### ああああ

P粉551084295
P粉551084295

全員に返信(1)
P粉432930081

最初の問題は、oci_execute() がデフォルトでコミットするため、POPULATETEMPTABLE を呼び出して挿入された行は、ON COMMIT DELETE ROWS; で定義された行によってクリアされることです。 。

次のように変更してこれを修正します:

リーリー

PL/SQL ブロックに SELECT を入れる場合の 2 番目の問題は、これが無効な PL/SQL であるためです。参照カーソルまたは暗黙的な結果セットを使用します。 OCI8 ドキュメントまたは Underground PHP および Oracle マニュアル

を参照してください。
いいねを押す +0
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート