PL/SQL如何写一个过程返回外部调用过程名称?
时间: 2023-08-10 08:05:30 浏览: 87
PL/SQL中编写Oracle数据库分页的存储过程
可以通过以下的PL/SQL代码实现:
```
CREATE OR REPLACE PROCEDURE get_proc_name(p_name OUT VARCHAR2)
IS
BEGIN
SELECT object_name INTO p_name
FROM user_objects
WHERE object_type = 'PROCEDURE'
AND object_id = (
SELECT caller_object_id
FROM user_objects
WHERE object_name = $$PLSQL_UNIT
AND object_type = 'PROCEDURE'
);
END;
```
该过程将返回调用当前过程的外部过程名称。在调用该过程时,传入一个OUT参数p_name,该参数将被赋值为调用当前过程的外部过程名称。例如:
```
DECLARE
v_proc_name VARCHAR2(100);
BEGIN
get_proc_name(v_proc_name);
DBMS_OUTPUT.PUT_LINE('The calling procedure name is: ' || v_proc_name);
END;
```
输出结果将显示调用当前过程的外部过程名称。
阅读全文