更新时间:2026-10-21 GMT+08:00
分享

获取当前的执行信息

可以通过使用GET [CURRENT] DIAGNOSTICS语句,查询当前PL/SQL函数执行过程中的状态信息。

语法

GET [ CURRENT ] DIAGNOSTICS {{variable { = | := } item }[ , ... ]};

语法图如图1所示。

图1 获取当前执行信息语法

其中,item表示执行状态的诊断项,目前可用的诊断项包括:

  • ROW_COUNT:上一个SQL语句处理的行数量。
  • RESULT_OID:上一个插入语句的Oid。

示例

gaussdb=# CREATE TABLE diag_table(int_col int, str_col varchar2);
CREATE TABLE
gaussdb=# CREATE OR REPLACE PROCEDURE get_diag_proc() AS
DECLARE
    nrows INT;
    result_oid oid;
BEGIN
    INSERT INTO diag_table values(1, 'aaa');
    GET CURRENT DIAGNOSTICS nrows = row_count;
    GET CURRENT DIAGNOSTICS result_oid = result_oid;
    raise info 'row_count: %, result_oid: %', nrows, result_oid;
END;
/
CREATE PROCEDURE
gaussdb=# CALL get_diag_proc();
INFO:  row_count: 1, result_oid: 0
 get_diag_proc
---------------

(1 row)

gaussdb=# DROP TABLE diag_table;
DROP TABLE
gaussdb=# DROP PROCEDURE get_diag_proc();
DROP PROCEDURE

相关文档