Skip to main content

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
  • ResultFieldusers

參數化查詢

SQL 設定:

  • SQL
SELECT * FROM products WHERE category = $1 AND price > $2
  • ResultFieldproducts

SQL Type Arguments:

  1. TypestringValue"electronics"
  2. TypenumberValue1000

動態參數查詢

SQL 設定:

  • SQL
SELECT context FROM faqs WHERE id = $1
  • ResultFieldfaqs

SQL Type Arguments:

  • Typestring
  • Value:選擇 Expression
prevMessage

查詢結果處理

Push Message 設定:

  • Message:選擇 Expression
JSON.stringify(faqs)

條件式查詢

Router 條件:

(() => {
return faqs && faqs.length > 0;
})()

注意事項

  1. 資料庫連線:確保資料來源設定正確,包含主機、連接埠、帳號密碼等

  2. SQL 語法:使用標準 SQL 語法,注意不同資料庫的方言差異

  3. 參數化查詢:建議使用參數化查詢避免 SQL 注入攻擊

  4. 效能考量:大量資料查詢可能影響效能,適當使用 LIMIT 限制結果數量

  5. 錯誤處理:建議連接 Failure 分支,處理資料庫連線或查詢錯誤

  6. 網路限制:如果資料庫有 VPN 限制,需要設定允許 Asgard 平台的 IP 位址存取