準備的陳述式

在SQL中,準備的敘述句用於範本化類似的查詢或更新。 Adobe Experience Platform Query Service 使用引數化查詢支援準備陳述式。 這可最佳化效能,因為您不再需要重複地重新剖析查詢。

使用準備的陳述式

使用預準備陳述式時,支援下列語法:

準備準備準備的陳述式 prepare

此SQL查詢會將寫入的SELECT查詢儲存為名稱 PLAN_NAME. 您可以使用變數,例如 $1 代替實際值。 這個準備好的陳述式將會在目前的工作階段期間儲存。 請注意,計畫名稱是 not 區分大小寫。

SQL格式

PREPARE {PLAN_NAME} AS {SELECT_QUERY}

範例SQL

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

執行準備的陳述式 execute

此SQL查詢使用先前建立的準備陳述式。

SQL格式

EXECUTE {PLAN_NAME}('{PARAMETERS}')

範例SQL

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

解除配置準備的陳述式 deallocate

此SQL查詢用於刪除已命名的準備陳述式。

SQL格式

DEALLOCATE {PLAN_NAME}

範例SQL

DEALLOCATE test;

使用準備陳述式的範例流程

最初,您可以有SQL查詢,例如以下查詢:

SELECT * FROM table WHERE id >= 10000 AND id <= 10005;

上述SQL查詢將傳回下列回應:

id
firstname
姓氏
生日
電子郵件
city
國家/地區
10000
亞歷山大
davis
1993-09-15
example@example.com
溫哥華
加拿大
10001
antoine
杜布瓦
1967-03-14
example2@example.com
巴黎
法國
10002
恭子
櫻花
1999-11-26
example3@example.com
東京
日本
10003
linus
彼得松
1982-06-03
example4@example.com
斯德哥爾摩
瑞典
10004
更容易
waithaka
1976-12-17
example5@example.com
內羅畢
肯亞
10005
費爾南多
rios
2002-07-30
example6@example.com
聖地亞哥
智利

您可以使用下列準備的陳述式將此SQL查詢引數化:

PREPARE getIdRange AS SELECT * FROM table WHERE id >= $1 AND id <= $2;

現在,可以使用以下呼叫執行準備好的陳述式:

EXECUTE getIdRange(10000, 10005);

呼叫此專案時,您會看到與之前完全相同的結果:

id
firstname
姓氏
生日
電子郵件
city
國家/地區
10000
亞歷山大
davis
1993-09-15
example@example.com
溫哥華
加拿大
10001
antoine
杜布瓦
1967-03-14
example2@example.com
巴黎
法國
10002
恭子
櫻花
1999-11-26
example3@example.com
東京
日本
10003
linus
彼得松
1982-06-03
example4@example.com
斯德哥爾摩
瑞典
10004
更容易
waithaka
1976-12-17
example5@example.com
內羅畢
肯亞
10005
費爾南多
rios
2002-07-30
example6@example.com
聖地亞哥
智利

使用完預先準備的陳述式後,您可以使用下列呼叫來解除配置它:

DEALLOCATE getIdRange;
recommendation-more-help
ccf2b369-4031-483f-af63-a93b5ae5e3fb