PostgreSQLLa base de données la plus sophistiquée au monde.
Documentation PostgreSQL 16.6 » Interfaces client » ECPG -- SQL embarqué en C » Commandes SQL Embarquées » PREPARE

PREPARE

PREPARE — prépare un ordre pour son exécution

Synopsis

PREPARE nom_préparé FROM chaîne
   

Description

PREPARE prépare l'exécution d'un ordre spécifié dynamiquement sous forme d'une chaîne. C'est différent des ordres SQL directs PREPARE, qui peuvent aussi être utilisés dans des programmes embarqués. La commande EXECUTE peut être utilisée pour exécuter les deux types de requêtes préparées.

Paramètres

nom_prepare #

Un identifiant pour la requête préparée.

chaîne #

Une chaîne littérale ou une variable hôte contenant un ordre SQL préparable, soit SELECT, INSERT, UPDATE ou DELETE. Utilisez des points d'interrogation (?) pour les valeurs de paramètres à fournir à l'exécution.

Notes

Dans une utilisation type, la chaîne est une référence de variable à une chaîne contenant l'ordre SQL dynamiquement construit. Le cas d'une chaîne littérale n'est pas très utile ; vous pouvez tout autant écrire un ordre SQL direct PREPARE.

Si vous utilisez une chaîne littérale, gardez à l'esprit que tout guillemet que vous souhaitez inclure dans l'ordre SQL doit être écrit avec des caractères d'échappement octal (\042) et non pas les idiomes habituels C \". En effet, la chaîne est dans une section EXEC SQL, donc l'analyseur grammatical ECPG l'analyse suivant les règles SQL et non pas les règles C. Toute barre oblique inverse (« backslash ») sera plus tard gérée en suivant les règles C ; mais \" provoque une erreur de syntaxe immédiate parce qu'il est vu comme une fin de litéral.

Exemples

char *stmt = "SELECT * FROM test1 WHERE a = ? AND b = ?";

EXEC SQL ALLOCATE DESCRIPTOR outdesc;
EXEC SQL PREPARE foo FROM :stmt;

EXEC SQL EXECUTE foo USING SQL DESCRIPTOR indesc INTO SQL DESCRIPTOR outdesc;
   

Compatibilité

PREPARE est spécifié dans le standard SQL.

Voir aussi

CONNECT, DISCONNECT