OVH Cloud OVH Cloud

[TransacSQL] Procédure stockée dans un select

1 réponse
Avatar
Cyril
Bonjour

Dans un SELECT je désire appeler une procédure stockée qui me renvoit
un varchar(500). Est-ce possible ?

Ma procédure GET_CHAIRMEN comporte 2 paramètres. Le premier en INT et
le 2ème en varchar(500) en OUTPUT

Voici mon code :

DECLARE @PERSONNE varchar(500)

SELECT
SESSION_ID, SESSION_CONGRES_ID,

(SELECT EXEC GET_CHAIRMEN SESSION_ID @PERSONNE OUTPUT) -> marche pas !

FROM
RESPONSABLE, SESSION
WHERE
(RESPONSABLE_CONGRES_ID = 1) AND
(SESSION_CONGRES_ID = 1) AND
RESPONSABLE_SESSION_ID = SESSION_ID

Je me casse la tête dessus. Cela me semble possible mais je n'arrive
pas à trouver la syntaxe.

Merci

Cyril

1 réponse

Avatar
Cyril
J'ai trouvé !

En fait je ne passe plus par une procédure stockée mais par une
fonction scalaire.
Je ne connaissais pas : c'est très pratique. Le seul truc c'est de ne
pas oublier DBO. à l'appel.

SELECT
SESSION_ID, SESSION_CONGRES_ID,
dbo.F_GET_CHAIRMEN (SESSION_ID) => la fonction scalaire renvoit une
valeur

FROM

RESPONSABLE, SESSION
WHERE
(RESPONSABLE_CONGRES_ID = 1) AND
(SESSION_CONGRES_ID = 1) AND
RESPONSABLE_SESSION_ID = SESSION_ID


Dans son message précédent, Cyril a écrit :
Bonjour

Dans un SELECT je désire appeler une procédure stockée qui me renvoit un
varchar(500). Est-ce possible ?

Ma procédure GET_CHAIRMEN comporte 2 paramètres. Le premier en INT et le 2ème
en varchar(500) en OUTPUT

Voici mon code :

DECLARE @PERSONNE varchar(500)

SELECT
SESSION_ID, SESSION_CONGRES_ID,

(SELECT EXEC GET_CHAIRMEN SESSION_ID @PERSONNE OUTPUT) -> marche pas !

FROM
RESPONSABLE, SESSION
WHERE
(RESPONSABLE_CONGRES_ID = 1) AND
(SESSION_CONGRES_ID = 1) AND
RESPONSABLE_SESSION_ID = SESSION_ID

Je me casse la tête dessus. Cela me semble possible mais je n'arrive pas à
trouver la syntaxe.

Merci

Cyril