Der IF NOT EXISTS
Syntax, die in SQL Server verfügbar ist, ist in Oracle nicht verfügbar.
Im Allgemeinen führen Oracle-Skripte einfach das CREATE
aus -Anweisung, und wenn das Objekt bereits existiert, erhalten Sie einen Fehler, der darauf hinweist, den Sie ignorieren können. Dies ist, was alle Standard-Oracle-Bereitstellungsskripte tun.
Wenn Sie jedoch wirklich auf Existenz prüfen und nur ausführen wollen, wenn das Objekt nicht existiert, um den Fehler zu vermeiden, können Sie ein PL/SQL
codieren Block. Schreiben Sie eine SQL
das prüft, ob ein Benutzer vorhanden ist, und wenn es nicht existiert, verwenden Sie EXECUTE IMMEDIATE
um CREATE USER
zu tun aus PL/SQL
blockieren.
Ein Beispiel für einen solchen PL/SQL-Block könnte sein:
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;
/