在 PL/SQL 中捕获 SQL/开发人员脚本输出
Posted
技术标签:
【中文标题】在 PL/SQL 中捕获 SQL/开发人员脚本输出【英文标题】:Capture SQL/Developer Script Output in PL/SQL 【发布时间】:2021-04-30 16:43:01 【问题描述】:在 SQL/Developer 中,当我执行一条语句时,我会收到一条脚本输出消息,其内容类似于 7 Records Merged
这是我的相关 PL/SQL 代码:
v_sql_loader := 'merge into foobar b using foobiz i on (b.foobar_id = i.foobiz_id) when not matched then insert (foobar_id) values (foobiz_id)';
execute immediate v_sql_loader;
如何在 PL/SQL 中捕获7 records Merged
?
我正在写 dbms_output.put_line(SQLERRM)
但那只会返回
ORA-0000: normal, successful completion
我可以使用什么 Oracle/PLSQL 对象来复制 SQL/开发者脚本输出消息?
期望结果:PLSQL 语句,最好是dbms_output.put_line()
;表示7 Records Merged.
【问题讨论】:
【参考方案1】:使用SQL%ROWCOUNT
:
BEGIN
...
EXECUTE IMMEDIATE v_sql_loader;
DBMS_OUTPUT.PUT_LINE('Merged: ' || SQL%ROWCOUNT);
END;
/
【讨论】:
以上是关于在 PL/SQL 中捕获 SQL/开发人员脚本输出的主要内容,如果未能解决你的问题,请参考以下文章
从 shell 脚本调用 PL/SQL 存储过程并捕获 out 参数
如何在 powershell 变量中捕获 PL SQL 函数的输出?