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