oracle存储过程能否返回本身的名字?例如有个存储过程叫 P_RUN,有没有什么函数能返回它的名字“P_RUN”。起因是我想让存储过程运行后,就自动记录自己的运行时间,报错信息等等,其实就是想实现存储过程的运行日志。这就需要保存它自己的名字。如果没有上面的功能的话,我还要人为的在过程里定义一个变量,并且人工给它赋值为 “P_RUN”。例如 v_proc_name varchar2(100) := 'P_RUN';感觉这样太麻烦,而且容易出错。
调试欢乐多
如果说保存到一个日志表时,那你在存储过程结束的前一条语句直接:
insert 日志表(.....) values('存储过程名',sysdate....);这样也可以记录存储过程执行日志信息;
1 P_RUN
2 P_GET
3 P_SET等等,然后自己编写一个函数get_proc_name,如
CREATE OR REPLACE get_proc_name(p_code NUMBER) RETURN VARCHAR2 AS
v_name proc_name.name%TYPE;
BEGIN
SELECT name INTO v_name FROM proc_code WHERE code = p_code;
RETURN v_name;
END;
/
不错,学习,貌似这个东东是用c实现的