執行預存程序
本例說明如何在使用資料庫連線時執行預存程序。本範例假設您熟悉下列概念:
資料庫連線中的所有儲存程序會在 Connector 工作中以動作的形式提供給您。動作是第一類函式,可透過連接器介面提供整合功能。動作可讓您變更實體或多個實體,且因連接器而異。不過,連接器可能不支援任何動作,在這種情況下,Actions
清單會為空白。
下列連接器支援儲存程序:
- BigQuery
- Cloud SQL - MySQL
- Cloud SQL - PostgreSQL
- Cloud SQL - SQL Server
- MySQL
- Oracle 資料庫
- PostgreSQL
- SQL Server
- MariaDB
- AlloyDB
- Snowflake
- Redshift
範例
假設您有一個 MySQL 資料庫,其中包含以下預存程序,可從 customers
資料表取得客戶資訊:
CREATE PROCEDURE get_customer_info (IN p_customer_id INT, OUT p_name VARCHAR(50), OUT p_email VARCHAR(255)) BEGIN SELECT name, email INTO p_name, p_email FROM customers WHERE id = p_customer_id; END
這個預存程序會傳回指定客戶的名稱和電子郵件地址。這個函式會透過 p_customer_id
輸入變數擷取客戶 ID,並分別在 p_name
和 p_email
輸出變數中傳回名稱和電子郵件地址。
假設您想使用 customer_id=1001
取得客戶的名稱和電子郵件 ID,就必須執行下列工作:
- 建立 連線至 MySQL 資料庫。
- 開啟或建立新的整合。
- 將連接器工作新增至整合項目。
- 在「設定」部分中,按一下「設定任務」,開啟「設定連接器任務」窗格。
- 設定連接器工作,以便使用您在步驟 1 中建立的連線。
- 在「Connection」欄中,從可用連線清單中選取所需連線。
選取連線後,系統會顯示「Type」欄,並顯示
Entities
和Actions
值。所有儲存程序都會列在「動作」中。 - 依序選取「動作」>「get_customer_info」。
- 按一下「完成」,完成連線設定並關閉窗格。
- 在「Connection」欄中,從可用連線清單中選取所需連線。
- 按一下
Connectors
任務元素,然後點選Task Input
部分中的connectorInputPayload
。 - 在
Default Value
欄位中指定下列 JSON 酬載:{ "customer_id": 1001 }
- 按一下整合服務編輯器工具列中的「Test」按鈕,即可執行整合作業。
如果整合作業順利完成,
connectorOutputPayload
變數就會包含類似以下的 JSON 酬載:{ "name": "John", "email": "john@test.com" }