SQL Processor
SQL Processor 用於執行 SQL 查詢並從資料庫取得資料。
基本用法
SQL Processor 用於連接資料庫並執行 SQL 查詢語句,將查詢結果儲存到指定的變數中供後續 processor 使用。當工作流程執行到此 processor 時,會使用設定的資料來源連接資料庫,執行 SQL 語句並將結果以陣列形式回傳。適用於資料查詢、條件篩選、統計分析、使用者驗證等需要存取資料庫資料的場景。
配置參數
Name
- 顯示在畫布上的名稱,用於在工作流程中識別此 processor
Description
- 用於補充此 processor 的用途,提升工作流程的可讀性與可維護性
Properties
Data Source(必填)
- 說明:選擇要連接的資料庫
- 設定方式:從下拉選單選擇已設定的資料來源,或點擊「Add」新增資料庫連線設定
- 支援類型:PostgreSQL、MySQL、SQL Server 等
SQL(必填)
- 說明:要執行的 SQL 查詢語句
- 編輯器:提供語法高亮的 SQL 編輯環境
- 參數化查詢:支援使用
$1
,$2
等參數佔位符進行參數化查詢
ResultField(必填)
- 說明:查詢結果要儲存的變數名稱
- 類型:查詢結果會以陣列形式儲存到此變數中
- 預設值:
result
SQL Type Arguments(選填)
- 說明:提供給 SQL 查詢的參數值
- 用途:對應 SQL 語句中的
$1
,$2
等參數佔位符 - 支援類型:
- string:字串型別
- integer:整數型別
- number:數值型別
- boolean:布林型別
每個參數包含:
- Type:參數的資料型別
- Value:參數的值,支援 Literal、Expression 等設定方式
連接關係
Success
當成功執行 SQL 查詢並取得結果時,工作流程會從此連接點繼續執行。ResultField 設定的變數名稱會成為新的可用變數。
Failure
當 SQL 查詢執行失敗時,工作流程會從此連接點繼續執行,並產生 prevError
變數儲存錯誤資訊。
使用範例
簡單資料查詢
SQL 設定:
- Data Source:選擇已設定的資料庫
- SQL:
SELECT id, name, email FROM users LIMIT 10
- ResultField:
users
參數化查詢
SQL 設定:
- SQL:
SELECT * FROM products WHERE category = $1 AND price > $2
- ResultField:
products
SQL Type Arguments:
- Type:
string
,Value:"electronics"
- Type:
number
,Value:1000
動態參數查詢
SQL 設定:
- SQL:
SELECT context FROM faqs WHERE id = $1
- ResultField:
faqs
SQL Type Arguments:
- Type:
string
- Value:選擇
Expression
prevMessage
查詢結果處理
Push Message 設定:
- Message:選擇
Expression
JSON.stringify(faqs)
條件式查詢
Router 條件:
(() => {
return faqs && faqs.length > 0;
})()
注意事項
-
資料庫連線:確保資料來源設定正確,包含主機、連接埠、帳號密碼等
-
SQL 語法:使用標準 SQL 語法,注意不同資料庫的方言差異
-
參數化查詢:建議使用參數化查詢避免 SQL 注入攻擊
-
效能考量:大量資料查詢可能影響效能,適當使用 LIMIT 限制結果數量
-
錯誤處理:建議連接 Failure 分支,處理資料庫連線或查詢錯誤
-
網路限制:如果資料庫有 VPN 限制,需要設定允許 Asgard 平台的 IP 位址存取