- 締切済み
SQL GO TOするには?
SELECTしたものを飛ばしてからINSERTしたいのですが、 どうしたら良いですか? CURSOR A is SELECT~~~ BEGIN FOR rec IN cur_z LOOP 項目追加(Arec); END LOOP; END; PROCEDURE 項目追加(rec) IS ←ここでエラー BEGIN INSERT~~~~ END 項目追加; としてあるのですが、 PLS-00103: 記号"PROCEDURE"が見つかりました。 PLS-00103: 記号")"が見つかりました。 のエラーが出ます。
- みんなの回答 (1)
- 専門家の回答
みんなの回答
- hakugen
- ベストアンサー率36% (8/22)
回答No.1
的外れだったらごめんなさい。 > SELECTしたものを飛ばしてからINSERTしたいのですが、 > どうしたら良いですか? これを実現するにはPROCEDUREを用いなくてもできるのですが、それではダメなのでしょうか。 INSERT INTO テーブルA SELECT 項目A, 項目B, … FROM テーブルB WHERE … ;
お礼
それが出来れば楽なんですよね。 条件の分岐が4つありまして… もちろん最初はそれでやろうと思ってたんですけど、 IF あ なんたらかんたら END IF IF い なんたらかんたら END IF INSERT とか考えてました…。 でもこれ(SQL文の中にIF文入れる)ができるのってACCESS特有ですよね。 今までほとんどACCESSでOracleあんまりやったことなくって。 というわけで、 BEGIN FOR rec カーソル1LOOP IF カーソル1の条件だったら PROCEDURE 項目追加(rec) END IF END LOOP ・・・2 ・・・3 ・・・4 END PG としたら楽だなぁと思ったんです。 それに、参照元のテーブルが2つで、 INSERTするテーブルが85項目あるので少しでも楽したいと思って><。 アドバイスありがと~です。