sql >> Base de Datos >  >> RDS >> Oracle

Creación de un usuario de Oracle si aún no existe

El IF NOT EXISTS sintaxis disponible en SQL Server, no está disponible en Oracle.

En general, los scripts de Oracle simplemente ejecutan CREATE declaración, y si el objeto ya existe, obtendrá un error indicándolo, que puede ignorar. Esto es lo que hacen todos los scripts de implementación estándar de Oracle.

Sin embargo, si realmente desea verificar la existencia, y solo ejecutar si el objeto no existe, evitando así el error, puede codificar un PL/SQL bloquear. Escribe un SQL que verifica la existencia del usuario, y si no existe, use EXECUTE IMMEDIATE hacer CREATE USER del PL/SQL bloquear.

Un ejemplo de un bloque PL/SQL de este tipo podría ser:

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