參數化查詢 parameterized-queries

查詢服務支援在查詢編輯器中使用引數化查詢。 透過引數化查詢,您現在可以使用引數的預留位置,並在執行時新增引數值。 預留位置可讓您使用動態資料,但您不知道在執行陳述式前將會有哪些值。 您也可以提前準備查詢,並重複使用它們以達到類似的目的。 重複使用查詢可節省大量時間,因為您可以避免為每個使用案例建立不同的SQL查詢。

先決條件

在繼續本指南之前,請先閱讀 查詢編輯器UI指南. 查詢編輯器指南提供關於如何在Experience Platform使用者介面中撰寫、驗證和執行客戶體驗資料查詢的詳細資訊。

NOTE
在Adobe Experience Platform UI中,僅在內嵌範本的父層級支援引數化查詢。 這表示引數化查詢只會在原始範本中使用時運作。 子範本必須是靜態範本,而且不能有動態引數。 請參閱 內嵌範本檔案 以進一步瞭解。

引數化查詢語法 syntax

引數化查詢使用格式 '$YOUR_PARAMETER_NAME' 可使用點標籤法串連和。 使用引數化查詢的範例SQL陳述式如下所示。

INSERT INTO
   $Database_Name.Schema_Name.adwh_lkup_process_delta_log
   (process_name, merge_policy_id, process_status, process_date, create_ts, change_ts)
SELECT
   '$Table_Process_Name' process_name,
   hash('$Merge_PolicyID') merge_policy_id,
   '$process_status' process_status,
   to_date('$date_key') process_date,
   CURRENT_TIMESTAMP create_ts,
   CURRENT_TIMESTAMP change_ts;

建立引數化查詢 create

若要在UI中建立引數化查詢,請導覽至「查詢編輯器」。 請參閱以下小節: 存取查詢編輯器 以取得更多指示。

使用 '$' 前置詞,在文本編輯器中將查詢參數輸入到查詢中。接下來,選取 查詢引數 標籤進行篩選 主控台 為索引鍵新增缺少的值。 如果您忽略將值新增到任何必要的索引鍵,則無法執行查詢。 警示圖示( 警示圖示。 )會出現在任何空白專案旁的「查詢引數」區段 值 輸入欄位。

NOTE
如果查詢未採用引數,您仍可在「查詢編輯器」中輸入不必要的引數。 查詢編輯器會忽略所有不必要的索引鍵值配對,而這些配對對查詢的執行或結果沒有影響。

具有引數化查詢的查詢編輯器和「查詢引數」區段會反白顯示。

TIP
變更索引標籤 查詢引數 至 主控台 以檢視查詢的主控台輸出。

使用查詢記錄檔詳細資料檢查引數值 check-parameter-values

您無法儲存範本中的引數,因為所使用的值不是永久性的。 不過,您可以檢查 查詢記錄檔詳細資料 頁面,尋找查詢執行中使用的引數值。 在此情況下,記錄檔不會指出查詢是引數化查詢。 請參閱 查詢記錄檔案 以取得有關如何尋找使用值的指示。

查詢記錄檢視,其引數化查詢的SQL在詳細資訊區段中反白顯示。

排程引數化查詢 schedule

當您排定引數化查詢時,會儲存引數值。 若要排程引數化查詢,請依照指南中所述的典型程式來建立排程查詢。 建立查詢排程,然後輸入要在查詢執行中使用的引數值。 此UI區段只會針對引數化查詢顯示。 請參閱以下小節: 為排程的引數化查詢設定引數 以取得特定指示。

TIP
查詢服務透過使用引數化查詢支援準備的陳述式。 請參閱 prepared陳述式語法指南 以取得有關SQL語法的詳細資訊。

後續步驟

閱讀本檔案後,您已瞭解如何在Adobe Experience Platform UI中引數化查詢,並在排程的查詢執行中使用它們。 本檔案也重點說明如何檢查日誌中用於查詢執行的引數值。

接下來,建議您閱讀 監視排定的查詢 以透過Platform UI更能瞭解所有查詢工作的狀態。

recommendation-more-help
ccf2b369-4031-483f-af63-a93b5ae5e3fb