IF NOT EXISTS
składnia dostępna w SQL Server, nie jest dostępna w Oracle.
Ogólnie rzecz biorąc, skrypty Oracle po prostu wykonują CREATE
instrukcji, a jeśli obiekt już istnieje, otrzymasz błąd wskazujący to, który możesz zignorować. To właśnie robią wszystkie standardowe skrypty wdrażania Oracle.
Jeśli jednak naprawdę chcesz sprawdzić istnienie i wykonać tylko wtedy, gdy obiekt nie istnieje, unikając w ten sposób błędu, możesz zakodować PL/SQL
blok. Napisz SQL
który sprawdza istnienie użytkownika, a jeśli nie istnieje, użyj EXECUTE IMMEDIATE
zrobić CREATE USER
z PL/SQL
blokować.
Przykładem takiego bloku PL/SQL może być:
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;
/