- ベストアンサー
selectの単純繰り返し
oracle11gで sqlplusで接続して、とあるテーブルのselectを100回繰り返したいのですが for文はどう書けばよいのでしょうか ↓selectはこんなのでOKです select * from testtable;
- みんなの回答 (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)
- k_o_r_o_c_h_a_n
- ベストアンサー率55% (526/942)
PL/SQL中でのSELECT文は、intoで受け取り変数を書いてあげないと・・
- pon2pon2
- ベストアンサー率42% (107/250)
今、手元に実機がないから検証できないけど、 SELECTを繰り返したいだけなら、こんな感じかな? 多分。 もし、insertとかしたいなら、LOOP後にCOMMIT忘れないように。 BEGIN FOR i IN 1..100 LOOP select * from testtable; END LOOP; END; /
補足
エラーが出てうまくいっていません。 お手数ですが教えていただけますか ※エラー内容を調べましたが関係なさそうなページばかりで、 さらに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> ================================================