それでは、私はこのようなテーブルがあるとしましょう:プロシージャの結果であるレコードを出力する方法は?
CREATE TABLE MEETINGS(
MEETING_DAY DATE,
MEETING_ROOM NVARCHAR2(10),
MEETING_DURATION NUMBER(2)
);
日付と会議室を受け取り、それが'LL会議の期間を持つレコードを返します。このような手順で、特定の日に部屋に起こる:
CREATE OR REPLACE PROCEDURE meetings_for_today(
v_room IN NVARCHAR2, v_day IN DATE, result_meetings OUT SYS_REFCURSOR)
IS BEGIN
OPEN result_meetings FOR
SELECT MEETING_DAY, MEETING_DURATION
FROM MEETINGS
WHERE MEETING_DAY = v_day AND MEETING_ROOM = v_room;
END;
/
しかし、私は手順が実際に働いている場合、私はこのトピックに関する多くのことを検索しましたチェックしたいのですが、私は見つけることは本当に難しい見つけますよ溶液。
だから私はやって試してみた:
ERROR at line 1: ORA-06504: PL/SQL: Return types of Result Set variables or query do not match ORA-06512: at line 8
私が間違っているのは何:私は次のエラーを与える
DECLARE
meeting_res MEETINGS%ROWTYPE;
v_refcur sys_refcursor;
BEGIN
meetings_for_today('1A', to_date('12/12/2016', 'dd/mm/yyyy'), v_refcur);
LOOP
fetch v_refcur into meeting_res;
exit when v_refcur%notfound;
dbms_output.put_line(meeting_res.MEETING_DAY || ' ' || meeting_res.MEETING_DAY);
end loop;
End;
/
?
PS:私には動作するコードを教えてください。私の推論に何が間違って私に説明し、どのように私はより良い、Oracleのリソースを使用する必要があります:)
おはよう、どうもありがとうございました!あなたの答えは非常によく精緻化されており、私が理解しようとしていたものです。私は正しい答えに近づいてうれしいです! – Safirah