【问题标题】:Can I get the resulting message from an UPDATE in Oracle?我可以从 Oracle 中的 UPDATE 中获取结果消息吗?
【发布时间】:2018-06-12 14:10:22
【问题描述】:

当我在 Oracle 中运行 UPDATE 语句时,有没有办法从控制台中显示的更新中捕获返回消息(例如,应该类似于“15 行更新”)?

如果没有,有没有办法捕获更新的行数并将此值存储到 PL/SQL 中的变量中?

【问题讨论】:

  • 消息由客户端生成(例如 sql*plus),因此您无法在 PL/SQL 中访问该消息,但您可能需要 SQL%ROWCOUNT 属性。 docs.oracle.com/cd/B19306_01/appdev.102/b14261/…
  • 这可能是我想要的,但在这种情况下,我需要将此值存储到我之前声明的 PL/SQL 中的一个变量中。有没有办法做到这一点?

标签: oracle plsql sql-update


【解决方案1】:

您可以将 SQL%ROWCOUNT 的输出存储在一个变量中,然后它可以显示为:

declare
v_count number;
begin
update t1 set val = 'B' where id = 1;
v_count := sql%rowcount;
dbms_output.put_line(v_count||' rows updated');
end;

【讨论】:

  • 完美,我不知道你可以直接做类似v_count := sql%rowcount
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-03-10
  • 2011-06-23
  • 1970-01-01
  • 2020-08-18
  • 2016-10-06
相关资源
最近更新 更多