Instructions préparées

Dans SQL, les instructions préparées sont utilisées pour modéliser des requêtes ou des mises à jour similaires. Adobe Experience Platform Query Service prend en charge les instructions préparées à l’aide d’une requête paramétrée. Vous pouvez l’utiliser pour optimiser les performances, car vous n’aurez plus besoin de continuer à analyser une requête à l’infini.

Utilisation d’instructions préparées

Lorsque vous utilisez des instructions préparées, les syntaxes suivantes sont prises en charge :

Préparation d’une instruction préparée

Cette requête SQL enregistre la requête SELECT écrite avec le nom donné comme PLAN_NAME. Vous pouvez utiliser des variables, telles que $1 au lieu de valeurs réelles. Cette instruction préparée sera enregistrée pendant la session en cours. Veuillez noter que les noms des formules ne sont pas sensibles à la casse.

Format SQL

PREPARE {PLAN_NAME} AS {SELECT_QUERY}

Exemple de code SQL

PREPARE test AS SELECT * FROM table WHERE country = $1 AND city = $2;

Exécution d’une instruction préparée

Cette requête SQL utilise l’instruction préparée qui a été créée précédemment.

Format SQL

EXECUTE {PLAN_NAME}('{PARAMETERS}')

Exemple de code SQL

EXECUTE test('canada', 'vancouver');

Désallocation d’une instruction préparée

Cette requête SQL est utilisée pour supprimer l’instruction préparée nommée.

Format SQL

DEALLOCATE {PLAN_NAME}

Exemple de code SQL

DEALLOCATE test;

Flux d’exemples d’utilisation d’instructions préparées

Au départ, vous pouvez disposer d’une requête SQL, telle que ci-dessous :

SELECT * FROM table WHERE id >= 10000 AND id <= 10005;

La requête SQL ci-dessus renvoie la réponse suivante :

identifiant prénom nom date de naissance adresse électronique ville pays
10000 alexander davis 15/09/1993 exemple@exemple.com Vancouver Canada
10001 antoine dubois 14/03/1967 exemple2@exemple.com Paris France
10002 kyoko sakura 26/11/1999 exemple3@exemple.com Tokyo Japon
10003 linus pettersson 03/06/1982 exemple4@exemple.com Stockholm Suède
10004 aasir waithaka 17/12/1976 exemple5@exemple.com Nairobi Kenya
10005 fernando rios 30/07/2002 exemple6@exemple.com Santiago Chili

Cette requête SQL peut être paramétrée à l’aide de l’instruction préparée suivante :

PREPARE getIdRange AS SELECT * FROM table WHERE id >= $1 AND id <= $2; 

Désormais, l’instruction préparée peut être exécutée à l’aide de l’appel suivant :

EXECUTE getIdRange(10000, 10005);

Lors de l’appel, les résultats sont exactement les mêmes que précédemment :

identifiant prénom nom date de naissance adresse électronique ville pays
10 000 alexander davis 15/09/1993 exemple@exemple.com Vancouver Canada
10001 antoine dubois 14/03/1967 exemple2@exemple.com Paris France
10002 kyoko sakura 26/11/1999 exemple3@exemple.com Tokyo Japon
10003 linus pettersson 03/06/1982 exemple4@exemple.com Stockholm Suède
10004 aasir waithaka 17/12/1976 exemple5@exemple.com Nairobi Kenya
10005 fernando rios 30/07/2002 exemple6@exemple.com Santiago Chili

Une fois l’instruction préparée terminée, vous pouvez procéder à sa désallocation à l’aide de l’appel suivant :

DEALLOCATE getIdRange;

Sur cette page