IF NOT EXISTS
syntax tillgänglig i SQL Server, är inte tillgänglig i Oracle.
I allmänhet kör Oracle-skript helt enkelt CREATE
uttalande, och om objektet redan finns, kommer du att få ett felmeddelande som indikerar det, som du kan ignorera. Detta är vad alla standardskript för Oracle-distribution gör.
Men om du verkligen vill kontrollera att det finns, och bara köra om objektet inte finns, och därmed undvika felet, kan du koda en PL/SQL
blockera. Skriv en SQL
som kontrollerar användarens existens, och om den inte finns, använd EXECUTE IMMEDIATE
att göra CREATE USER
från PL/SQL
blockera.
Ett exempel på ett sådant PL/SQL-block kan vara:
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;
/