为 SQL 插入语句生成日志文件

Posted

技术标签:

【中文标题】为 SQL 插入语句生成日志文件【英文标题】:Generate Log files for SQL insert statements 【发布时间】:2013-08-20 13:44:20 【问题描述】:

我正在使用 Oracle 10g

我有一个 abc.sql 文件,其中包含许多插入语句(100 +)

基本上这个文件会交给另一个团队执行。我希望这个 abc.sql 文件生成 abc.log 文件,其中包含每个插入/提交语句的“插入 1 行”或“提交成功”等消息。

目的是将此日志文件发送回开发人员进行验证,以检查是否所有插入都成功。

我不是 Oracle SQL 专家,但我知道这是可能的(因为我以前在我的一家公司中使用过它),向 SQL 专家提出问题以寻求他们的建议和帮助

有什么建议吗?

【问题讨论】:

如果 abc.sql 脚本将由 sql*plus 运行,那么这可能会有所帮助***.com/questions/8590826/… 感谢您的指点,我正在寻找更多关于此的示例……我应该用谷歌搜索什么词? sql审计?? 我想我不需要添加 dbms_output.putline() 100 次...当我在 sql*plus 中运行插入时,我会看到类似“插入 1 行”或“提交成功”这样的消息将此输出定向到日志文件的方法? @Lav 从哪里执行 abc.sql? 您可以通过脚本控制spool the output,或者您可以依靠运行它的人通过重定向捕获输出。您可能希望在脚本中明确地执行set feedback on etc.,以防他们有一个默认为关闭的登录脚本。它将如何以及在何处运行将影响您所做的事情。 【参考方案1】:

查看以下链接。

"dynamic logging with global application context"

您可能不需要阅读所有内容,而是从“全局应用程序上下文”阅读直到“非交互式测试”。

在“start_log”过程中您可以打开文件。

并且在“日志”过程中,您可以写入文件而不是:

DBMS_OUTPUT.PUT_LINE(
TO_CHAR(SYSDATE,'HH24:MI:SS ": "') || p_msg);

然后在“end_log”中可以关闭文件。

要在 Oracle 中打开、写入和关闭文件,请参阅 Oracle PL/SQL write to file example。

【讨论】:

以上是关于为 SQL 插入语句生成日志文件的主要内容,如果未能解决你的问题,请参考以下文章

如何将Hibernate生成的SQL语句打印到日志文件

如何从日志文件创建sql插入脚本

无法从 hsqldb 日志文件恢复

如何查看oracle的日志文件

19MySQL日志管理(下)

删除日志的SQL语句是啥?