• 締切済み

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: 記号")"が見つかりました。 のエラーが出ます。

みんなの回答

  • hakugen
  • ベストアンサー率36% (8/22)
回答No.1

的外れだったらごめんなさい。 > SELECTしたものを飛ばしてからINSERTしたいのですが、 > どうしたら良いですか? これを実現するにはPROCEDUREを用いなくてもできるのですが、それではダメなのでしょうか。 INSERT INTO テーブルA  SELECT 項目A, 項目B, … FROM テーブルB WHERE … ;

-Jelly-
質問者

お礼

それが出来れば楽なんですよね。 条件の分岐が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項目あるので少しでも楽したいと思って><。 アドバイスありがと~です。

関連するQ&A