【发布时间】:2016-05-11 06:43:41
【问题描述】:
我有一个 oracle 程序,它选择数据并插入另一个表。下面是代码。
CREATE OR REPLACE PROCEDURE "CUSTOMER_INCREMENTAL" (
IS
BEGIN
INSERT INTO NDB_AML_CUSTOMER
(ID, TITLE,...)
SELECT ID, TITLE,...
FROM NDB_CUSTOMER_NEW
WHERE DATE_TIME > (SELECT RUN_DATE FROM CHECK_POINT WHERE TABLE_NAME = 'NDB_CUSTOMER_NEW');
UPDATE CHECK_POINT SET RUN_DATE = SYSDATE WHERE TABLE_NAME = 'NDB_CUSTOMER_NEW';
COMMIT;
END;
/
我想知道如何将事件输出到表格中。像流程开始时间戳,流程结束时间戳和异常中的错误消息。所以日志表中会有两列,如日期和消息。有什么建议么?
【问题讨论】:
-
您希望日志包含哪些内容?每次执行时你想要一个新文件,还是累积日志?您将如何运行该过程,您希望将日志记录在服务器上还是客户端计算机上?
-
如果它用于服务器端,那么您可以使用 utl_file。用这个词谷歌,你会得到足够的信息。 @Alex Poole 我很想知道如何在客户端机器上生成过程日志?
-
无法将 DBMS_OUTPUT 重定向到文件。 Oracle 没有内置(应用程序)日志记录。因此,如果您想这样做,您将需要编写自己的实现,或者,如果您愿意记录到表而不是文件,请向下 the Logger package from Github
-
@PravinSatav - 假脱机,脚本输出重定向......并不是说这是明智或安全的,即使该过程总是希望以某种方式调用 - 只是想弄清楚 OP 的目标是什么为了。目前不确定他们想要记录什么。
-
@Alex Poole - 感谢您提供的信息。知道如何做到这一点....