Vous n'êtes pas identifié(e).
Pages : 1
Bonjour
Dans mon SQL, si une condition n'est pas vérifiée, j'aimerai retourner un code de retour spécifique.
J'ai tenté de mettre RETURN mais cela ne passe pas dans mon cas :
SELECT COUNT(*) = 0 AS user_not_exist FROM pg_user WHERE usename = :'p1' \gset
\if :user_not_exist
SELECT CASE
WHEN :'p2' = 'indus' THEN 'roleadmin'
ELSE 'roleread'
END AS profil
\gset
CREATE USER :p1 NOCREATEDB IN GROUP :"profil";
\echo Creation user :p1 done!
\else
\echo 'Warning ! User :p1 already exist on database
RETURN '99';
\endif
Si l'utilisateur existe déjà, je le saurais avec un CR à 99.
Mais j'ai l'erreur suivante :
psql:/users2/eba00/exploit/sql/eba_0pum_createUser.sql:14: ERROR: syntax error at or near "RETURN"
LINE 1: RETURN '99';
^
Idem avec un \ devant
Merci
Hors ligne
Bonjour,
Malheureusement le code retour de psql est normalisé et ne peut pas être modifié, cf https://www.postgresql.org/docs/current/app-psql.html:
Exit Status
psql returns 0 to the shell if it finished normally, 1 if a fatal error of its own occurs (e.g., out of memory, file not found), 2 if the connection to the server went bad and the session was not interactive, and 3 if an error occurred in a script and the variable ON_ERROR_STOP was set.
Julien.
https://rjuju.github.io/
Hors ligne
Merci rjuju
Hors ligne
Pages : 1