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からレコードがフェッチされていない場合は、「OK」と出力されません。END LOOPの後にc1%notfoundを追加しました