Syntaxe
EXECUTE statement-name USING [DESCRIPTOR descriptor-name] host-variable,...
|
EXEC statement-name USING [DESCRIPTOR descriptor-name] host-variable,...
|
Paramètres
Nom |
Description |
statement-name |
Ce paramètre permet d'indiquer le nom de l'instruction. |
descriptor-name |
Ce paramètre permet d'indiquer le nom du descripteur. |
host-variable |
Ce paramètre permet d'indiquer le nom des variables de l'hôte. |
Description
Cette instruction permet d'exécuter une procédure STORED.
Ainsi, l'instruction EXECUTE, est unique au SQL dynamique. Il demande au SGBD d'exécuter une instruction préparée précédemment avec l'instruction
PREPARE ou CREATE PROCEDURE. Vous pouvez exécuter toute instruction pouvant être préparée, à une exception près. A l'instar de l'instruction EXECUTE IMMEDIATE,
l'instruction EXECUTE ne peut pas être utilisée pour exécuter une instruction SELECT, car il lui manque un mécanisme pour gérer les résultats de la requête.
Remarques
- Si l'instruction dynamique à exécuter contient un ou plusieurs marqueurs de paramètre, l'instruction EXECUTE doit fournir une valeur pour chacun des paramètres.
Les valeurs peuvent être fournies de deux manières différentes soit la norme ANSI ou ISO SQL2.
- EXECUTE avec des variables hôtes : Le moyen le plus simple de passer des valeurs de paramètre à l'instruction EXECUTE consiste à spécifier une liste de variables hôte dans la clause
USING. L'instruction EXECUTE substitue les valeurs des variables hôtes, en séquence, aux marqueurs de paramètre dans le texte de l'instruction préparé.
Les variables hôtes servent donc de variables hôtes d'entrée pour l'instruction exécutée dynamiquement. Il est conforme à la norme ANSI / ISO SQL2 pour le SQL dynamique.
- EXECUTE avec SQLDA : La deuxième façon de passer des paramètres à l'instruction EXECUTE consiste à utiliser une structure de données SQL dynamique spéciale appelée
SQL Data Area ou SQLDA. Vous devez utiliser un SQLDA pour transmettre des paramètres lorsque vous ne connaissez pas le nombre de paramètres à transmettre et leurs types de
données au moment de l'écriture du programme. Par exemple, supposons que vous souhaitiez modifier un programme de mise à jour afin que l'utilisateur puisse sélectionner plusieurs colonnes à
mettre à jour. Vous pouvez facilement modifier le programme pour générer une instruction UPDATE avec un nombre variable d'assignations, mais la liste des variables hôte dans l'instruction
EXECUTE pose un problème : il doit être remplacé par une liste de longueur variable. Le SQL fournit un moyen de spécifier une telle liste de paramètres de longueur variable.
- Le nombre de variables hôtes dans la clause USING doit correspondre au nombre de marqueurs de paramètre dans l'instruction dynamique, et le type de données de chaque variable hôte
doit être compatible avec le type de données requis pour le paramètre correspondant. Chaque variable hôte de la liste peut également avoir une variable indicatrice d'hôte compagnon. Si la variable
indicatrice contient une valeur négative lors du traitement de l'instruction EXECUTE, la valeur NULL est attribuée au marqueur de paramètres correspondant.
Dernière mise à jour : Samedi, le 9 mars 2019