• ベストアンサー

selectの単純繰り返し

oracle11gで sqlplusで接続して、とあるテーブルのselectを100回繰り返したいのですが for文はどう書けばよいのでしょうか ↓selectはこんなのでOKです select * from testtable;

質問者が選んだベストアンサー

  • ベストアンサー
回答No.3

-------------------------------------------------------------------------------- DECLARE str VARCHAR2(2000); BEGIN DBMS_OUTPUT.PUT_LINE('----結果------'); FOR i IN 1..10 LOOP select dummy into str from dual; DBMS_OUTPUT.PUT_LINE(i||':'||str); END LOOP; END; ----結果------ 1:X 2:X 3:X 4:X 5:X 6:X 7:X 8:X 9:X 10:X PL/SQLが実行されました(0 msec.) --------------------------------------------------------------------------------

その他の回答 (2)

回答No.2

PL/SQL中でのSELECT文は、intoで受け取り変数を書いてあげないと・・

  • pon2pon2
  • ベストアンサー率42% (107/250)
回答No.1

今、手元に実機がないから検証できないけど、 SELECTを繰り返したいだけなら、こんな感じかな? 多分。 もし、insertとかしたいなら、LOOP後にCOMMIT忘れないように。 BEGIN FOR i IN 1..100 LOOP select * from testtable; END LOOP; END; /

ycae382905
質問者

補足

エラーが出てうまくいっていません。 お手数ですが教えていただけますか ※エラー内容を調べましたが関係なさそうなページばかりで、 さらにv$versionとtesttableでエラーが違うのもなぞです。 ================================================ SQL> begin 2 for i in 1..100 loop 3 select * from v$version; 4 end loop; 5 end; 6 / select * from v$version; * 行3でエラーが発生しました。: ORA-06550: 行3、列1: PLS-00428: INTO句はこのSELECT文に入ります。 SQL> SQL> begin 2 for i in 1..100 loop 3 select * from testtable; 4 end loop; 5 end; 6 / select * from testtable; * 行2でエラーが発生しました。: ORA-06550: 行4、列2: PLS-00103: 記号"END"が見つかりました。 SQL> ================================================

関連するQ&A