Show Menu
THEMEN×

Vorgefertigte Anweisungen

In SQL werden vorbereitete Anweisungen verwendet, um ähnliche Abfragen oder Aktualisierungen vorzubereiten. Der Adobe Experience Platform Abfrage Service unterstützt vorbereitete Anweisungen mithilfe einer parametrisierten Abfrage. Dies kann zur Leistungsoptimierung verwendet werden, da Sie eine Abfrage nicht mehr immer wieder neu analysieren müssen.

Zubereitete Anweisungen verwenden

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

Vorbereitung einer vorbereiteten Erklärung

Diese SQL-Abfrage speichert die geschriebene SELECT-Abfrage mit dem angegebenen Namen PLAN_NAME . Sie können Variablen verwenden, z. B. $1 anstelle von tatsächlichen Werten. 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;

Eine 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');

Zubereitete Anweisung aufheben

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

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
Geburtstag
email
city
country
10000
Alexander
davis
1993-09-15
Vancouver
Kanada
10001
Antoine
dubois
1967-03-14
Paris
Frankreich
10002
kyoko
Sakura
1999-11-26
Tokio
Japan
10003
Linus
Pettersson
1982-06-03
Stockholm
Schweden
10004
aasir
Waithaka
1976-12-17
Nairobi
Kenia
10005
Farando
Rios
2002-07-30
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);

Wenn dies aufgerufen wird, sehen Sie genau die gleichen Ergebnisse wie zuvor:
id
firstname
lastname
Geburtstag
email
city
country
10000
Alexander
davis
1993-09-15
Vancouver
Kanada
10001
Antoine
dubois
1967-03-14
Paris
Frankreich
10002
kyoko
Sakura
1999-11-26
Tokio
Japan
10003
Linus
Pettersson
1982-06-03
Stockholm
Schweden
10004
aasir
Waithaka
1976-12-17
Nairobi
Kenia
10005
Farando
Rios
2002-07-30
Santiago
Chile
Nachdem Sie die vorbereitete Anweisung verwendet haben, können Sie die Zuweisung mithilfe des folgenden Aufrufs aufheben:
DEALLOCATE getIdRange;