Show Menu
ARGOMENTI×

Dichiarazioni preparate

In SQL, le istruzioni preparate vengono utilizzate per modellare query o aggiornamenti simili. Adobe Experience Platform Query Service supporta le istruzioni preparate utilizzando una query con parametri. Questo può essere utilizzato per ottimizzare le prestazioni, in quanto non sarà più necessario ripetere continuamente l'analisi di una query.

Uso di istruzioni preparate

Quando si utilizzano le istruzioni preparate, sono supportate le seguenti sintassi:

Preparare una dichiarazione preparata

Questa query SQL salva la query SELECT scritta con il nome specificato come PLAN_NAME . È possibile utilizzare le variabili, ad esempio $1 al posto dei valori effettivi. Questa istruzione preparata verrà salvata durante la sessione corrente. I nomi dei piani non fanno distinzione tra maiuscole e minuscole.

Formato SQL

PREPARE {PLAN_NAME} AS {SELECT_QUERY}

Esempio di SQL

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

Esecuzione di un'istruzione preparata

Questa query SQL utilizza l'istruzione preparata creata in precedenza.

Formato SQL

EXECUTE {PLAN_NAME}('{PARAMETERS}')

Esempio di SQL

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

Disallocare un'istruzione preparata

Questa query SQL viene utilizzata per eliminare l'istruzione preparata denominata.

Formato SQL

DEALLOCATE {PLAN_NAME}

Esempio di SQL

DEALLOCATE test;

Esempio di flusso utilizzando le istruzioni preparate

Inizialmente, potete disporre di una query SQL, come quella riportata di seguito:
SELECT * FROM table WHERE id >= 10000 AND id <= 10005;

La query SQL precedente restituirà la risposta seguente:
id
firstName
lastname
natalità
e-mail
city
country
10000
alexander
davis
1993-09-15
Vancouver
Canada
10001
antoina
dubois
1967-03-14
Paris
Francia
10002
kyoko
sakura
1999-11-26
Tokyo
Giappone
10003
linus
pettersson
1982-06-03
Stoccolma
Kenya
10004
aasir
waithaka
1976-12-17
Nairobi
Kenya
10005
fernando
rios
2002-07-30
Santiago
Cile
Questa query SQL può essere parametrizzata utilizzando la seguente istruzione preparata:
PREPARE getIdRange AS SELECT * FROM table WHERE id >= $1 AND id <= $2; 

A questo punto, l'istruzione preparata può essere eseguita utilizzando la seguente chiamata:
EXECUTE getIdRange(10000, 10005);

Quando viene chiamato, si vedranno esattamente gli stessi risultati di prima:
id
firstName
lastname
natalità
e-mail
city
country
10000
alexander
davis
1993-09-15
Vancouver
Canada
10001
antoina
dubois
1967-03-14
Paris
Francia
10002
kyoko
sakura
1999-11-26
Tokyo
Giappone
10003
linus
pettersson
1982-06-03
Svezia
Stoccolma
Svezia
10004
aasir
waithaka
1976-12-17
Nairobi
Kenya
10005
fernando
rios
2002-07-30
Santiago
Cile
Dopo aver completato l'istruzione preparata, è possibile deallocarla utilizzando la seguente chiamata:
DEALLOCATE getIdRange;