IF NOT EXISTS
syntaxe dostupná v SQL Server, není dostupná v Oracle.
Obecně skripty Oracle jednoduše spouštějí CREATE
a pokud objekt již existuje, zobrazí se chybové hlášení, které můžete ignorovat. To je to, co dělají všechny standardní implementační skripty Oracle.
Pokud však skutečně chcete zkontrolovat existenci a spustit pouze v případě, že objekt neexistuje, čímž se vyhnete chybě, můžete nakódovat PL/SQL
blok. Napište SQL
který zkontroluje existenci uživatele, a pokud neexistuje, použijte EXECUTE IMMEDIATE
k provedení CREATE USER
z PL/SQL
blokovat.
Příkladem takového bloku PL/SQL může být:
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;
/