Téléchargement des produits


Version anglaise


 

      

VADELIA

SADELIA

WADELIA

EADELIA


(I/B) (S)

(B) (S)

(I/B) (S)

(B) (S)

Attention :

Cet ordre n'est pas compatible avec les parties serveur AS/400.


Paragraphe d'utilisation

Tous


Syntaxe

EXEC_PROC_SQL 'NomProcedure' ListeParametres ParametreRetour

ParametreRetour

*RETOUR(IdVarHote) | Rien

ListeParametres

SuiteParamètres | Rien

SuiteParametres

SuiteParamètres, Paramètre | Paramètre

Parametre

Constante | IdVarHote Genre

IdVarHote

:IdVar | :IdVar :IdVarIndicatrice

Genre

I | O | B | Rien

Constante

'ConstanteAlpha' | ConstanteNumérique



Description


Cet ordre permet d'appeler une procédure stockée SQL rendant ses résultats via les paramètres définis en sortie, ou en entrée/sortie, et/ou via un paramètre résultat.
Seules les procédures prenant en paramètre des types simples et retournant un résultat unique sont supportées. Les procédures retournant un jeu de résultats (curseur) ne sont pas supportées.


Les paramètres peuvent être de n'importe quel type simple géré par Adélia, à l'exclusion du type IMAGE.


Le paramètre *RETOUR permet de définir la variable recevant la valeur de retour de la procédure, dans le cas où celle-ci retourne un résultat.


A noter que le paramètre *RETOUR n'est pas forcément supporté par tous les gestionnaires de base de données implémentant le support des procédures stockées. Notamment, il n'est pas supporté par DB2.


Le genre d'un paramètre est précisé à l'aide d'une des trois lettres suivantes :

    • I : paramètre en entrée.

    • O : paramètre en sortie.

    • B : paramètre en entrée/sortie.


Si le genre n'est pas précisé, le paramètre est considéré comme un paramètre en entrée (I).


Après exécution de l'ordre, il est possible de tester le code retour SQL à l'aide du mot réservé *SQLCODE.


Attention :

L'utilisation du caractère ',' à la fois comme séparateur de paramètres et comme séparateur de décimales peut provoquer des ambiguïtés.
Dans ce cas, on considère que le caractère est évalué prioritairement comme un séparateur de décimales.


Ainsi, le texte 21,22,23, dans la spécification des paramètres est interprété comme la définition de deux paramètres : le premier de valeur 21,22 et le deuxième de valeur 23.

De même, pour exprimer deux paramètres entiers, vous devez mettre un espace avant ou après la virgule : 21, 22 (et non 21,22).



Par exemple

* Création de la procédure GetServerName qui renvoie le nom du serveur de base de données

CHOIX_SELON *SGBD

SI_VALEUR 'ORACLE'

   Requete = 'create or replace procedure GetServerName (vServerName out varchar2) as begin select distinct rtrim(machine) into vServerName from sys.v_$session where username is null; end;'

   exec_sql(:Requete)

   ...


FIN_CHOIX_SELON


* Appel de la procédure

EXEC_PROC_SQL 'GetServerName' :ServerName O


↑ Haut de page




  • Aucune étiquette