

PREPARE — prépare un ordre pour son exécution
PREPAREnom_préparéFROMchaîne
    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.
   
    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.
   
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;
    PREPARE est spécifié dans le standard SQL.