IF NOT EXISTS
синтаксис, наличен в SQL Server, не е наличен в Oracle.
По принцип скриптовете на Oracle просто изпълняват CREATE
и ако обектът вече съществува, ще получите грешка, указваща това, която можете да игнорирате. Това правят всички стандартни скриптове за внедряване на Oracle.
Въпреки това, ако винаистинате искате да проверите за съществуване и да изпълните само ако обектът не съществува, като по този начин избегнете грешката, можете да кодирате PL/SQL
блок. Напишете SQL
който проверява съществуването на потребител и ако не съществува, използвайте EXECUTE IMMEDIATE
да направите CREATE USER
от PL/SQL
блокирай.
Пример за такъв PL/SQL блок може да бъде:
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;
/