PL/SQL我的功能类似于T-SQL的OBJECT_NAME(@@ PROCID)

Cha*_*adD 5 oracle plsql

在T-SQL中,以下命令将返回当前运行的存储过程的名称:

OBJECT_NAME(@@PROCID) 
Run Code Online (Sandbox Code Playgroud)

在PL/SQL中,当我将以下代码放在包的存储过程上时,它返回父包的名称而不是执行的存储过程.

$$PLSQL_UNIT
Run Code Online (Sandbox Code Playgroud)

有没有办法在PL/SQL中获取执行程序的名称?

Pav*_*nar 0

只需在 DECLARE 部分中使用过程名称定义一个常量

whoami CONSTANT VARCHAR2(100) := 'MY_PROCEDURE';
Run Code Online (Sandbox Code Playgroud)