CREATE OR REPLACE procedure verify_data
IS
cursor c1 is
select
e.id
from
table1 e
where
id IN (select id from table1)
and id in (select id from table2);
BEGIN
FOR ed in c1
LOOP
DBMS_OUTPUT.PUT_LINE(ed.id||ed.name);
END LOOP;
END;
/
当我执行这个 PL/SQL 时,它输出为
14安德鲁·R·史密斯
我想问的是如何通过格式化等使其输出为正常结果。
下面是如果我在终端直接运行 select 语句会发生什么
ID NAME
---------- --------------------------------------------------
14 Andrew R. Smith
第一个问题: 如何使我的 DBMS_OUTPUT.PUT_LINE 与终端上显示的相同。像 ID 然后下面是 ID 数据和 NAME 等。
下一个问题:
我想问的是
如果光标为空或没有结果,我该如何输出,我 DBMS_OUTPUT.PUT_LINE("NO RECORDS");
感谢大家的帮助!!
更新:
我做了这个
CREATE OR REPLACE procedure verify_data
IS
cursor c1 is
select
e.id
from
table1 e
where
id IN (select id from table1)
and id in (select id from table2);
BEGIN
FOR ed in c1
LOOP
DBMS_OUTPUT.PUT_LINE(ed.id||ed.name);
if c1%notfound then
DBMS_OUTPUT.PUT_LINE('Okay');
end if;
END LOOP;
END;
但是当没有从 PL/SQL 获取记录时,它不会打印 Okay 。我在 END LOOP 之后添加了 c1%notfound