【问题标题】:How to display the updated values of different tables using Stored procedure displayed Oracle如何使用存储过程显示Oracle不同表的更新值
【发布时间】:2016-08-01 14:44:46
【问题描述】:

// 下面的更新语句出现在我的存储过程中。我在执行存储过程时传递了两个参数(参数 1 和参数 2)。执行存储过程后,我希望显示不同的更新值。请提供以下示例的代码(我的存储过程)

CREATE OR REPLACE PROCEDURE UPDATE_TABLE(parameter1 IN NUMBER, parameter IN varchar2)
AS
BEGIN

   UPDATE Table1 SET column_a = (parameter1 +2) WHERE id= parameter2;
   update Table2 set column_b=  parameter1 where id=parameter2;

END UPDATE_TABLE

【问题讨论】:

  • 更新完表后为什么不直接查询呢?
  • @Mureinik:我希望显示这些值..可能有很多表要更新..
  • 你想展示什么?更新了 column_a 和 column_b?
  • @EvgeniyK。是的,不同表的更新列

标签: oracle stored-procedures


【解决方案1】:

使用 returning 子句 + bulk collect。我不知道您出于什么目的需要显示这些更新的数据。以下方法适用于您的一张桌子。您可以分享给其他人。

DECLARE
    TYPE t_type is table of VARCHAR2(250);
    l_type t_type;
    begin
       UPDATE Table1 SET column_a = (parameter1 +2) RETURNING column_a BULK COLLECT INTO l_type;

       FOR i IN 1..l_type.count
        LOOP
          DBMS_OUTPUT.PUT_LINE(l_type(i));
        END LOOP;
    END;

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-07-18
    • 2017-11-09
    • 2018-12-15
    • 1970-01-01
    相关资源
    最近更新 更多