【发布时间】: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