为 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 插入语句生成日志文件的主要内容,如果未能解决你的问题,请参考以下文章