準備的陳述式

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

使用準備的陳述式

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

準備準備準備的陳述式 prepare

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

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
姓氏
生日
電子郵件
城市
國家/地區
10000
alexander
davis
1993-09-15
example@example.com
溫哥華
加拿大
10001
安東尼
杜布瓦
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
姓氏
生日
電子郵件
城市
國家/地區
10000
alexander
davis
1993-09-15
example@example.com
溫哥華
加拿大
10001
安東尼
杜布瓦
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