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,它輸出PL/SQL遊標如果沒有數據和輸出
14Andrew R.史密斯
我想問的是讓我的如何輸出一個正常的結果,像這樣與格式化等也
下面是如果我直接與終端
ID NAME
---------- --------------------------------------------------
14 Andrew R. Smith
運行SELECT語句會發生什麼
第一個問題: 如何使我的DBMS_OUTPUT.PUT_LINE與終端上顯示的相同。像ID,然後下面是ID的數據,和名稱等
下一個問題:
我想問的是
我如何做一個輸出,如果遊標是空的或沒有結果,i 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取它不打印好的。我添加了未找到的c1%END LOOP
您好,我儘量把這個如果c1%NOTFOUND然後 DBMS_OUTPUT.PUT_LINE( '無記錄'); end if;在我的後END LOOP,它給我像* ERROR一些錯誤,在第1行: ORA-01001:無效光標 ORA-06512:在 「USER1.VERIFY_EMPLOYEE」 18行 ORA-06512:在line 1 – user1777711
你必須將代碼放在循環內(在'end lopp'之前)。 – Parado
我更新了我的問題與更新,我確實把內部,但它不打印任何東西。問題是如果沒有記錄提取,它甚至不會進入循環我想。但無論如何,我添加爲你提到的,它不打印消息「好」。 – user1777711