全部產品
Search
文件中心

AnalyticDB:pldbgapi

更新時間:Jun 19, 2024

若您需對已有Function(函數)進行開發或調試,可以安裝pldbgapi外掛程式並使用PL/pgSQL的調試功能,根據需求設定條件、程式斷點、變數值等輕鬆實現。

功能介紹

AnalyticDB PostgreSQL版中,PL/pgSQL是一種用於編寫預存程序和使用者自訂函數(UDF)的擴充語言,它結合了SQL的資料查詢和資料處理能力,補充了過程式控制制和編程特性,允許使用者使用變數、條件、迴圈、異常處理等來實現複雜的邏輯和操作。

pldbgapi外掛程式結合PL/pgSQL功能可用於調試,即類似使用GDB(GNU Debugger)調試C語言程式,可以設定程式斷點,進行單步調試,顯示變數運行值等。使用pldbgapi外掛程式的PL/pgSQL功能可以使Function的開發、調試變得簡便。

注意事項

  • AnalyticDB PostgreSQL 6.0版且小版本為v6.3.10.19及以上的執行個體支援pldbgapi外掛程式。如何查看執行個體核心版本,請參見查看核心小版本

  • PL/pgSQL調試需在pgAdmin用戶端中進行,建議使用v6.21版本的用戶端,高版本不相容AnalyticDB PostgreSQL版核心。pgAdmin用戶端下載,請參見pgAdmin

操作步驟

  1. 安裝pldbgapi外掛程式:請您在AnalyticDB for PostgreSQL執行個體外掛程式管理中安裝pldbgapi外掛程式。具體操作,請參見安裝、升級與卸載外掛程式

  2. 登入AnalyticDB PostgreSQL版資料庫,建立用於PL/pgSQL調試的Function。本文Function樣本如下。

    CREATE OR REPLACE FUNCTION add_numbers(a int, b int)
    RETURNS NUMERIC AS $$
    DECLARE
        t1_b_avg NUMERIC;
    BEGIN
        --DROP TABLE t1;
        CREATE TABLE t1 (a int, b int, c int, d int);
    	RAISE NOTICE 'Finish CREATE ';
        FOR i IN 1..10 LOOP
    	    INSERT INTO t1 VALUES (i, i, i, i);
    	END LOOP;
    	RAISE NOTICE 'Finish INSERT ';
        SELECT avg(t1.b) INTO t1_b_avg FROM t1 LIMIT 1;
    	RAISE NOTICE 'Finish SELECT: avg=[%] ', t1_b_avg;
    	DROP TABLE t1;
        RETURN a + b + t1_b_avg;
    END;
    $$ LANGUAGE plpgsql;
  3. 查詢表資料,驗證Function可用。

    SELECT add_numbers(1, 3);
  4. 開啟pgAdmin,單擊Object > Register > Server

  5. Register-Server頁面的General頁簽,設定Server名稱,如test

  6. Register-Server頁面的Connection頁簽,填寫如下參數,並單擊Save完成Server建立。

    參數

    描述

    Host name/address

    AnalyticDB PostgreSQL版執行個體的外網地址。詳細資料,請參見管理外網地址

    Port

    AnalyticDB PostgreSQL版執行個體的連接埠號碼。

    Maintenace database

    固定為postgres

    Username

    AnalyticDB PostgreSQL版執行個體的帳號。

    Password

    帳號密碼。

  7. 在左側Servers列表中,在目標Servers中單擊test > Databases > postgres > Schemas > public > Functions定位到待調試的Function。

  8. 按右鍵待調試的Function,並選擇Debugging > Debug11.png

  9. Debugger頁面,設定函數輸入參數,並單擊Debug。本文樣本設定Name為a和b的值為2,且a不為空白。12.png

  10. 在調試地區,單擊左上方調試按鈕ts.pngtstu.png

  11. 調試結束後,可在調試地區下方的MessagesResult頁簽查看調試結果。

    Messages頁簽:顯示Function運行過程中的文本輸出。

    Result頁簽:顯示Function執行完成後的傳回值。