De IF NOT EXISTS
syntaxis beschikbaar in SQL Server, is niet beschikbaar in Oracle.
Over het algemeen voeren Oracle-scripts gewoon de CREATE
. uit statement, en als het object al bestaat, krijg je een foutmelding die dat aangeeft, die je kunt negeren. Dit is wat alle standaard Oracle-implementatiescripts doen.
Als je echter echt wilt controleren op bestaan, en alleen uitvoeren als het object niet bestaat, waardoor de fout wordt vermeden, kunt u een PL/SQL
coderen blok. Schrijf een SQL
die controleert op het bestaan van een gebruiker, en als deze niet bestaat, gebruik EXECUTE IMMEDIATE
te doen CREATE USER
van de PL/SQL
blok.
Een voorbeeld van zo'n PL/SQL-blok kan zijn:
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;
/