Vorbereitete Anweisungen

In SQL dienen vorbereitete Anweisungen dazu, ähnliche Abfragen oder Aktualisierungen als Vorlagen zu erstellen. Adobe Experience Platform Query Service unterstützt vorbereitete Anweisungen mithilfe einer parametrisierten Abfrage. Dies kann die Leistung optimieren, da Sie eine Abfrage nicht mehr wiederholt erneut 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 example@example.com Vancouver Kanada
10001 antoine dubois 14.03.1967 example2@example.com Paris Frankreich
10002 kyoko sakura 26.11.1999 example3@example.com Tokio Japan
10003 linus pettersson 03.06.1982 example4@example.com Stockholm Schweden
10004 aasir waithaka 17.12.1976 example5@example.com Nairobi Kenia
10005 fernando rios 30.07.2002 example6@example.com 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 example@example.com Vancouver Kanada
10001 antoine dubois 14.03.1967 example2@example.com Paris Frankreich
10002 kyoko sakura 26.11.1999 example3@example.com Tokio Japan
10003 linus pettersson 03.06.1982 example4@example.com Stockholm Schweden
10004 aasir waithaka 17.12.1976 example5@example.com Nairobi Kenia
10005 fernando rios 30.07.2002 example6@example.com Santiago Chile

Nachdem Sie die vorbereitete Anweisung fertig verwendet haben, können Sie die Zuweisung mithilfe des folgenden Aufrufs aufheben:

DEALLOCATE getIdRange;

Auf dieser Seite