Oracle
 sql >> Datenbank >  >> RDS >> Oracle

Erstellen eines Oracle-Benutzers, falls noch nicht vorhanden

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;
/