oracle

Oracle 便利なんだけどすぐ忘れる無名ブロック

ストアドするほどではないのだけれど、とりあえず簡単なプロシージャを書きたい時や、簡単なテストデータを作成したい時など活躍します。

-- 以下サンプルプログラム用にテーブル作成
create table ex304 (cnt number ,col1 varchar2(40),col2 number)
;
declare
cnt int;
begin
cnt :=0;
for j in 1..5 loop
   for i in 1..10 loop
      cnt :=cnt + 1;
      insert into ex304 values(cnt,'tes'||to_char(cnt),trunc(dbms_random.value * 1000));
   end loop;
   commit;
   dbms_output.put_line('commitしました'||to_char(cnt));
end loop;
end;
/
SQL> set lin 100
SQL> set serveroutput on
SQL>
SQL> create table ex304 (cnt number ,col1 varchar2(40),col2 number)
  2  ;

表が作成されました。

SQL> declare
  2  cnt int;
  3  begin
  4  cnt :=0;
  5  for j in 1..5 loop
  6     for i in 1..10 loop
  7        cnt :=cnt + 1;
  8        insert into ex304 values(cnt,'tes'||to_char(cnt),trunc(dbms_random.value * 1000));
  9     end loop;
 10     commit;
 11     dbms_output.put_line('commitしました'||to_char(cnt));
 12  end loop;
 13  end;
 14  /
commitしました10
commitしました20
commitしました30
commitしました40
commitしました50

PL/SQLプロシージャが正常に完了しました。

SQL>
set lin 100
set serveroutput on
スポンサーリンク
コピペで使う