SQLの構文チェック方法

※上記の広告は60日以上更新のないWIKIに表示されています。更新することで広告が下部へ移動します。

動的SQLをチェックする場合

DBMS_SQL をファンクション化してチェック
declare
cid integer;
begin
cid := DBMS_SQL.OPEN_CURSOR;
DBMS_SQL.PARSE(cid, 'select * from emmmp', dbms_sql.v7);
DBMS_SQL.CLOSE_CURSOR(cid);
dbms_output.put_line ('end');
exception
when OTHERS then
dbms_output.put_line ('** エラー **');
end;

更新SQLをチェックする場合

トランザクションを読み込み専用にして行う
set transaction read only;
トランザクションが設定されました。

update emmmp set empno=1;
*
ORA-00942: 表またはビューが存在しません。

update emp set empno=1;
*
ORA-01456: READ ONLYトランザクションでは挿入/削除/更新ができません。