Show Menu
THEMEN×

Vorbereitete Anweisungen

In SQL dienen vorbereitete Anweisungen dazu, ähnliche Abfragen oder Aktualisierungen als Vorlagen zu erstellen. Adobe Experience Platform Query Service supports prepared statements by using a parameterized query. Dies kann zur Leistungsoptimierung beitragen, da Sie Abfragen nicht mehr immer wieder neu analysieren müssen.

Verwenden von vorbereiteten Anweisungen

Bei Verwendung vorbereiteter Anweisungen werden die folgenden Syntaxen unterstützt:

Eine vorbereitete Anweisung vorbereiten

Diese SQL-Abfrage speichert die geschriebene SELECT-Abfrage mit dem Namen PLAN_NAME . Sie können Variablen, z. B. $1 , anstelle von tatsächlichen Werten nutzen. Diese vorbereitete Erklärung wird während der aktuellen Sitzung gespeichert. Beachten Sie, dass bei den Plannamen nicht zwischen Groß- und Kleinschreibung unterschieden wird.

SQL-Format

PREPARE {PLAN_NAME} AS {SELECT_QUERY}

Beispiel-SQL

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

Vorbereitete Anweisung ausführen

Diese SQL-Abfrage verwendet die vorbereitete Anweisung, die zuvor erstellt wurde.

SQL-Format

EXECUTE {PLAN_NAME}('{PARAMETERS}')

Beispiel-SQL

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

Zuweisung einer vorbereiteten Anweisung aufheben

Diese SQL-Abfrage dient zum Löschen der benannten vorbereiteten Anweisung.

SQL-Format

DEALLOCATE {PLAN_NAME}

Beispiel-SQL

DEALLOCATE test;

Beispielfluss mit vorbereiteten Anweisungen

Zunächst können Sie eine SQL-Abfrage wie die folgende verwenden:
SELECT * FROM table WHERE id >= 10000 AND id <= 10005;

Die obige SQL-Abfrage gibt folgende Antwort zurück:
id
firstname
lastname
birthdate
email
city
country
10000
alexander
davis
15.09.1993
Vancouver
Kanada
10001
antoine
dubois
14.03.1967
Paris
Frankreich
10002
kyoko
sakura
26.11.1999
Tokio
Japan
10003
linus
pettersson
03.06.1982
Stockholm
Schweden
10004
aasir
waithaka
17.12.1976
Nairobi
Kenia
10005
fernando
rios
30.07.2002
Santiago
Chile
Diese SQL-Abfrage kann mithilfe der folgenden vorbereiteten Anweisung parametrisiert werden:
PREPARE getIdRange AS SELECT * FROM table WHERE id >= $1 AND id <= $2; 

Nun kann die vorbereitete Anweisung mithilfe des folgenden Aufrufs ausgeführt werden:
EXECUTE getIdRange(10000, 10005);

Bei diesem Aufruf sehen Sie genau die gleichen Ergebnisse wie zuvor:
id
firstname
lastname
birthdate
email
city
country
10000
alexander
davis
15.09.1993
Vancouver
Kanada
10001
antoine
dubois
14.03.1967
Paris
Frankreich
10002
kyoko
sakura
26.11.1999
Tokio
Japan
10003
linus
pettersson
03.06.1982
Stockholm
Schweden
10004
aasir
waithaka
17.12.1976
Nairobi
Kenia
10005
fernando
rios
30.07.2002
Santiago
Chile
Nachdem Sie die vorbereitete Anweisung fertig verwendet haben, können Sie die Zuweisung mithilfe des folgenden Aufrufs aufheben:
DEALLOCATE getIdRange;