更新时间:2026-10-21 GMT+08:00
获取当前的执行信息
可以通过使用GET [CURRENT] DIAGNOSTICS语句,查询当前PL/SQL函数执行过程中的状态信息。
语法
GET [ CURRENT ] DIAGNOSTICS {{variable { = | := } item }[ , ... ]}; 语法图如图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
父主题: 错误捕获语句
