gpt4 book ai didi

oracle - 如何手动生成与 SQL*Plus 假脱机结果相同的日志文件

转载 作者:行者123 更新时间:2023-12-02 08:01:38 24 4
gpt4 key购买 nike

我需要为存储的 PL/SQL 过程生成日志文件或写入日志表。如果我理解正确的话,我不能在存储过程中使用假脱机。我知道我可以使用 UTL_FILE 写入日志文件,但我想弄清楚如何获取一些我想写入的信息。假脱机时,您会在执行每个语句后获得某种结果字符串,例如“PL/SQL 过程成功完成”或“选择了 5 行”。有没有办法获得该输出或类似的东西,以便我可以将它们放入我的日志中?

最佳答案

不直接。该输出是由 SQL*Plus 生成的,而不是由数据库中的任何内容生成的。如果您想在过程中的每个 SQL 语句之后生成输出,则必须将代码放入过程中以输出您想要的任何内容。

“PL/SQL 过程成功完成”可以通过在 BEGIN..END block 中用异常处理程序包围您的过程调用来生成。如果未调用异常处理程序,则打印出 Successfully completed。如果它被调用,请使用 WHEN OTHERS 来转储您想要的任何调试信息。

BEGIN
INVOKE_YOUR_PROCEDURE_HERE;
UTL_FILE.PUT_LINE(fileHandle, 'PL/SQL procedure successfully completed');
EXCEPTION
WHEN OTHERS THEN
UTL_FILE.PUT_LINE(fileHandle, 'Procedure failed: ' || SQLCODE || ' - ' || SQLERRM);
END;

“选择 5 行”可以通过在 SELECT 语句执行后打印出 SQL%ROWCOUNT 来完成,如

UTL_FILE.PUT_LINE(fileHandle, SQL%ROWCOUNT || ' rows affected');

祝你好运。

关于oracle - 如何手动生成与 SQL*Plus 假脱机结果相同的日志文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56533731/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com