Il IF NOT EXISTS
sintassi disponibile in SQL Server, non è disponibile in Oracle.
In generale, gli script Oracle eseguono semplicemente CREATE
e se l'oggetto esiste già, riceverai un errore che lo indica, che puoi ignorare. Questo è ciò che fanno tutti gli script di distribuzione Oracle standard.
Tuttavia, se davvero vuoi verificare l'esistenza ed eseguire solo se l'oggetto non esiste, evitando così l'errore, puoi codificare un PL/SQL
bloccare. Scrivi un SQL
che verifica l'esistenza dell'utente e, se non esiste, usa EXECUTE IMMEDIATE
per fare CREATE USER
dal PL/SQL
blocco.
Un esempio di tale blocco PL/SQL potrebbe essere:
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;
/