我有一个预定的工作,每天凌晨3:00:00运行存储过程。
我的程序中有异常阻止,如下所示。
EXCEPTION
WHEN NOT_LOGGED_ON THEN
dbms_output.put_line('Database is not connected/Database connection is lost');
WHEN OTHERS THEN
dbms_output.put_line('Error in execution');
我想在作业运行时每天将异常(如果有的话)记录到某种日志文件中。 这样,用户可以稍后检查日志文件,以了解该过程是否已成功运行。
任何人都可以告诉我有没有办法实现这个目标?
答案 0 :(得分:1)
所以当你这样做,并且没有将异常带给用户时 - Oracle会创建一个带有异常的转储文件。
查看udump / bdump目录 - 您可能会发现大量报告这些错误的痕迹(对于作业 - 查找其中包含j0 ...的转储文件名称。)
更好的方法(而且我可以相信我说的,因为我不喜欢这种机制)是使用调度作业(dbms_scheduler)而不是http://docs.oracle.com/cd/E11882_01/server.112/e25494/scheduse.htm#ADMIN12501)它有一个内部机制放置您可以查询的表中的所有这些异常。
如果我上面写的内容 - 你仍然想要创建一个文件......
寻找UTL_FILE ....