Oracle
 sql >> Base de données >  >> RDS >> Oracle

Création d'un utilisateur Oracle s'il n'existe pas déjà

Le IF NOT EXISTS syntaxe disponible dans SQL Server, n'est pas disponible dans Oracle.

En général, les scripts Oracle exécutent simplement le CREATE , et si l'objet existe déjà, vous obtiendrez une erreur indiquant cela, que vous pouvez ignorer. C'est ce que font tous les scripts de déploiement standard d'Oracle.

Cependant, si vous vraiment voulez vérifier l'existence et exécuter uniquement si l'objet n'existe pas, évitant ainsi l'erreur, vous pouvez coder un PL/SQL bloquer. Ecrire un SQL qui vérifie l'existence de l'utilisateur, et s'il n'existe pas, utilisez EXECUTE IMMEDIATE faire CREATE USER depuis le PL/SQL bloquer.

Un exemple d'un tel bloc PL/SQL pourrait être :

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