前提・実現したいこと
oracleDBでPL/SQLのプロシージャを作成しています。
既存で動いている処理を踏襲して実装しているのですが、
既存プログラムを全く同じ記述をしているにもかかわらず実行エラーとなります。
原因がわからず、長考しています。
お力添えいただけないでしょうか。
該当のソースコード
PL/SQL
1 cursor AAA_cur is 2 select * 3 from AAA 4 5 for AAA_rec in AAA_cur loop 6 7 SELECT A 8 INTO vA 9 FROM BBB 10 WHERE C = AAA_rec.D;
試したこと
どこが悪さをしているのかを切り分けて調べた結果、
「AAA_rec.D」に問題があることがわかりました。
AAAテーブルの項目Dには重複データがありますが、for文なので1行ずつ処理しているためデータの重複は関係ないと思っています。
【追記】
「WHERE C = AAA_rec.D;」を
「WHERE rownum < 2;」 にすると問題なく動きます。
やはりデータが2件以上取れちゃっているのでしょうか・・・。
補足情報(FW/ツールのバージョンなど)
11g
回答1件
あなたの回答
tips
プレビュー