準備的陳述

在SQL中,預準備語句用於模板類似的查詢或更新。 Adobe Experience Platform Query Service 使用參數化查詢支援預準備的語句。 這可以最佳化效能,因為您不再需要重複地重新剖析查詢。

使用預準備的陳述式

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

準備一份陳述

此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;

執行準備的語句

此SQL查詢使用先前建立的預準備語句。

SQL格式

EXECUTE {PLAN_NAME}('{PARAMETERS}')

示例SQL

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

取消分配準備的語句

此SQL查詢用於刪除命名的預準備語句。

SQL格式

DEALLOCATE {PLAN_NAME}

示例SQL

DEALLOCATE test;

使用預準備語句的示例流

起初,您可以有SQL查詢,如下所示:

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

上述SQL查詢將返回以下響應:

id 名字 lastname 出生日期 電子郵件 city 國家
10000 亞歷山大 戴維斯 1993-09-15 example@example.com 溫哥華 加拿大
10001 安托萬 杜布瓦 1967-03-14 example2@example.com 巴黎 法國
10002 京子 櫻花 1999-11-26 example3@example.com 東京 日本
10003 佩特松 1982-06-03 example4@example.com 斯德哥爾摩 瑞典
10004 aasir 懷塔卡 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 名字 lastname 出生日期 電子郵件 city 國家
10000 亞歷山大 戴維斯 1993-09-15 example@example.com 溫哥華 加拿大
10001 安托萬 杜布瓦 1967-03-14 example2@example.com 巴黎 法國
10002 京子 櫻花 1999-11-26 example3@example.com 東京 日本
10003 佩特松 1982-06-03 example4@example.com 斯德哥爾摩 瑞典
10004 aasir 懷塔卡 1976-12-17 example5@example.com 內羅畢 肯亞
10005 費爾南 rios 2002-07-30 example6@example.com 聖地亞哥 智利

使用完準備的陳述式後,您可以使用下列呼叫將其取消分配:

DEALLOCATE getIdRange;

本頁內容