天天看点

Oracle EBS通过内置函数获取包名(package name)、存储过程名(procedure name)、函数名(Function name)

1、 owa_util.who_called_me f方法

--写在被调用方里
owa_util.who_called_me(owner_name, 
                       caller_name,
                       line_number, 
                       caller_type);
           

owner_name:程序所有者

caller_name:

(1)调用方是独立存储过程(存储函数):结果是调用方存储过程名(存储函数名)

(2)调用方存储过程(存储函数)在包里:结果是调用方包名

line_number:第几行

caller_type:类型PROCEDURE,FUNCTION,PACKAGE BODY

2、utl_call_stack.subprogram()()

--写在被调用方里面
utl_call_stack.subprogram(2)(1) --返回调用方包名
utl_call_stack.subprogram(2)(2) --返回调用方存储过程名
           

3、$$PLSQL_UNIT

获取本我
写在独立存储过程(存储函数)里,获取到此存储过程(存储函数)名
存储过程(存储函数)在包里,获取到此包的包名