
現在、テーブル名をループして、その値をもとに動的SQLでテーブルを作成するようプログラムを作成しております。ただ作成しようとしているテーブルの中には既に作成済みのテーブルもある為、その場合、それを飛ばすか、または作らない処理を作る必要があります。
その為、下記の変数「wk_sql」に値を入れる前にテーブルがある場合、continueで次の処理に進むか、または動的SQLの内容を「IF EXISTS」のような内容にしようと思っているのですが、PL/SQLの場合、どのように作成すればよろしいのでしょうか?
宜しくお願いいたします。
PL/SQL
1DECLARE 2 CURSOR cursor_emp IS 3 SELECT TABLE_NAME 4 FROM TT_TABLE; 5 6 record_emp cursor_emp%ROWTYPE; 7 8 wk_sql varchar2(1000); 9 10BEGIN 11 OPEN cursor_emp; 12 LOOP 13 FETCH cursor_emp INTO record_emp; 14 EXIT WHEN cursor_emp%NOTFOUND; 15 16 wk_sql := 'CREATE TABLE TEST_' || record_emp.TABLE_NAME || 17 ' as select * from ' || record_emp.TABLE_NAME || ' WHERE 1 = 0'; 18 19 EXECUTE IMMEDIATE wk_sql; 20 wk_sql := ''; 21 22 END LOOP; 23 CLOSE cursor_emp; 24 25END;

回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。