Oracle
 sql >> Database >  >> RDS >> Oracle

Creazione di un utente Oracle se non esiste già

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;
/