sql >> Database >  >> RDS >> Oracle

Een Oracle-gebruiker maken als deze nog niet bestaat

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


  1. krijg een fout bij het definiëren van de gebeurtenisnaam op mysqlworkbench 5.5

  2. MariaDB JSON_OBJECT() uitgelegd

  3. MYSQL LEFT JOIN met GROUP BY

  4. C# SSH-tunnel naar MySQL-server