プロが教える店舗&オフィスのセキュリティ対策術

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

↓selectはこんなのでOKです
select * from testtable;

A 回答 (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.)
--------------------------------------------------------------------------------
    • good
    • 0

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

    • good
    • 3

今、手元に実機がないから検証できないけど、


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>
================================================

補足日時:2009/09/10 20:05
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています

関連するカテゴリからQ&Aを探す


このQ&Aを見た人がよく見るQ&A