【问题标题】:How to get output of the below procedure如何获得以下过程的输出
【发布时间】:2020-03-07 20:54:32
【问题描述】:

当我执行以下查询时,我得到的输出是 PL/SQL 过程完成。而不是实际结果。如何在屏幕上输出该语句的执行结果

Declare
v_sql varchar2(500);
v_schema varchar(30);

v_event varchar2(500):= 'EVENT NAME';
v_email varchar2(200) := 'Name@XYZ.com';
v_prj_id varchar2(4000):='ProjectA,ProjectB,ProjectC,ProjectD';


BEGIN


Dbms_Output.Put_Line('v_prj_id='||v_prj_id);
--
FOR i IN (SELECT trim(regexp_substr(v_prj_id, '[^,]+', 1, LEVEL)) l
        FROM dual 
        CONNECT BY LEVEL <= regexp_count(v_prj_id, ',') + 1 
       ) LOOP
  --
  Dbms_Output.Put_Line('---------------------');
  --
  --
  v_sql := 'UPDATE ' || i.l|| '.Table set email = email ||'';''||:1 WHERE 
EVENT = :2'  ;
  --
  Dbms_Output.Put_Line('v_sql='||v_sql);
  --
  begin
    EXECUTE IMMEDIATE v_sql USING v_email, v_event;
  Exception
    when others then
         Dbms_Output.Put_Line('sqlerrm='||sqlerrm);
  End;
  --
 END LOOP;
 END;

得到的实际结果是 PL/SQL 过程完成。但我期待在屏幕上执行该语句的输出结果

【问题讨论】:

  • 在运行代码之前尝试执行SET SERVEROUTPUT ON

标签: oracle plsql dbms-output


【解决方案1】:
SET SERVEROUTPUT ON

---执行你的程序

【讨论】:

  • 感谢您的信息。但我只得到更新声明。但我实际上需要更新语句的结果。
  • 是的,通常使用上面的语句,你应该得到更新的结果。在运行设置 serveroutput on 的过程后,你在屏幕上看到了什么?
  • 您希望看到的“更新结果”是什么?唯一的 dbms_output 调用是在更新之前和异常处理程序中。
【解决方案2】:

可以使用 SQL%ROWCOUNT 检查更新的总行数。

begin
    EXECUTE IMMEDIATE v_sql USING v_email, v_event;
    DBMS_OUTPUT.PUT_LINE(SQL%ROWCOUNT||' rows are updated.');

【讨论】:

    【解决方案3】:

    当您执行 PL/SQL 过程时,输出将是 "PL/SQL procedure successfully completed." 或在出现错误时显示错误。 如果你想输出特定的东西,你必须dbms_output.put_line它。

    即使我不确定您要输出什么,如果您想检查更新了多少行,您可以这样做:

    begin
        EXECUTE IMMEDIATE v_sql USING v_email, v_event;
        dbms_output.put_line(SQL%ROWCOUNT||' rows are updated.');
    exception
        when others then
            dbms_output.put_Line('sqlerrm='||sqlerrm);
    end;
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-02-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多