sql >> Databasteknik >  >> RDS >> Oracle

Skapa en Oracle-användare om den inte redan finns

IF NOT EXISTS syntax tillgänglig i SQL Server, är inte tillgänglig i Oracle.

I allmänhet kör Oracle-skript helt enkelt CREATE uttalande, och om objektet redan finns, kommer du att få ett felmeddelande som indikerar det, som du kan ignorera. Detta är vad alla standardskript för Oracle-distribution gör.

Men om du verkligen vill kontrollera att det finns, och bara köra om objektet inte finns, och därmed undvika felet, kan du koda en PL/SQL blockera. Skriv en SQL som kontrollerar användarens existens, och om den inte finns, använd EXECUTE IMMEDIATE att göra CREATE USER från PL/SQL blockera.

Ett exempel på ett sådant PL/SQL-block kan vara:

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


  1. Slå samman två MySQL-tabeller i olika databaser på samma server med Laravel Eloquent

  2. SQL Server:Endast sista posten i GROUP BY

  3. SQL-fråga för att hämta räkenskapsårsdata grupperade efter år

  4. utländsk nyckel och indexfråga