初めてのPLSQL(ループ文)

| | コメント(0) | トラックバック(0)

OracleでSQLだけではスマートに解決できない処理が必要になった。
ということで、初めてPLSQLに挑戦。

内容としては、SELECT文の結果セットを基にして、
UPDATE文をレコード数分だけ繰り返すという簡単な内容
忘れないようにメモ代わりに作成例を記載。

---------------------------------------------
declare
/* SELECT文の結果セットをカーソル(変数)に代入 */
cursor c_result is select user_id, data from sample_tbl;

/* カーソル用の変数定義 */
record c_result%rowtype;


begin
open c_result;
loop
/* カーソルからレコードを1行取り出す */
fetch c_result into record;

/* 値を確認するためのDEBUG */
dbms_output.put_line('user_id = ' || record.user_id );
dbms_output.put_line('data = ' || record.data );

/* UPDATE文 */
update target_tbl TRGT set TRGT.data = record.data
where TRGT.user_id = record.cust_id;

exit when c_result%notfound;

end loop;
close c_result;
end;

トラックバック(0)

このブログ記事を参照しているブログ一覧: 初めてのPLSQL(ループ文)

このブログ記事に対するトラックバックURL: http://wildcolors.net/blogmaster/mt-tb.cgi/60

コメントする


画像の中に見える文字を入力してください。