IF NOT EXISTS
SQL Serverで使用可能な構文は、Oracleでは使用できません。
一般に、OracleスクリプトはCREATE
を実行するだけです。 ステートメント、およびオブジェクトがすでに存在する場合は、それを示すエラーが表示されますが、無視してかまいません。これは、すべての標準的なOracleデプロイメントスクリプトが行うことです。
ただし、本当に 存在を確認し、オブジェクトが存在しない場合にのみ実行してエラーを回避したい場合は、PL/SQL
をコーディングできます。 ブロック。 SQL
を書く ユーザーの存在を確認し、存在しない場合はEXECUTE IMMEDIATE
を使用します CREATE USER
を実行するには PL/SQL
から ブロック。
このようなPL/SQLブロックの例は次のとおりです。
declare
userexist integer;
begin
select count(*) into userexist from dba_users where username='SMITH';
if (userexist = 0) then
execute immediate 'create user smith identified by smith';
end if;
end;
/