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. Cela peut optimiser les performances, car vous n’avez plus besoin de réanalyser une requête de manière répétitive.

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 prepare

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 execute

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 deallocate

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 e-mail
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 e-mail
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

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

DEALLOCATE getIdRange;
recommendation-more-help
ccf2b369-4031-483f-af63-a93b5ae5e3fb