Show Menu
SUJETS×

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 supports prepared statements by using a parameterized query. 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
Vancouver
Canada
10001
antoine
dubois
14/03/1967
Paris
France
10002
kyoko
sakura
26/11/1999
Tokyo
Japon
10003
linus
pettersson
03/06/1982
Stockholm
Suède
10004
aasir
waithaka
17/12/1976
Nairobi
Kenya
10005
fernando
rios
30/07/2002
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
10000
alexander
davis
15/09/1993
Vancouver
Canada
10001
antoine
dubois
14/03/1967
Paris
France
10002
kyoko
sakura
26/11/1999
Tokyo
Japon
10003
linus
pettersson
03/06/1982
Stockholm
Suède
10004
aasir
waithaka
17/12/1976
Nairobi
Kenya
10005
fernando
rios
30/07/2002
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;