在PL/SQL中,可以通过使用DBMS_UTILITY.FORMAT_CALL_STACK
和DBMS_UTILITY.FORMAT_ERROR_BACKTRACE
函数来查看正在执行的SQL。下面是一个示例代码:
DECLARE v_sql VARCHAR2(32767); BEGIN -- 获取正在执行的SQL v_sql := DBMS_UTILITY.FORMAT_CALL_STACK; -- 打印正在执行的SQL DBMS_OUTPUT.PUT_LINE(v_sql); -- 获取错误的SQL v_sql := DBMS_UTILITY.FORMAT_ERROR_BACKTRACE; -- 打印错误的SQL DBMS_OUTPUT.PUT_LINE(v_sql); END;
在上面的例子中,DBMS_UTILITY.FORMAT_CALL_STACK
函数返回当前正在执行的SQL,而DBMS_UTILITY.FORMAT_ERROR_BACKTRACE
函数返回最近的错误信息中的SQL。你可以根据需要将这些SQL保存到变量中,然后进行进一步的处理或输出。