PROCEDURE Get_Remain_Info( remain_cursor_ OUT sys_refcursor ) IS BEGIN OPEN remain_cursor_ FOR select month,maintain_id,count(1) from C_REMNANT_WO_NO_TAB group by month,maintain_id order by month,maintain_id; END Get_Remain_Info;
在PL/SQL運行后,點擊
可以查看結果集。未解決問題:游標關閉。據說在java調用的時候,可以關閉,未做驗證。
--------------------------------------------------------------------------------------------------------------------------------
轉載:https://www.cnblogs.com/JourneyOfFlower/p/10876575.html
--Oracle使用游標查詢結果集所有數據 DECLARE myTabelName NVARCHAR2(200):=''; --表名 myTableRowComment NVARCHAR2(200):=''; --行內容 result VARCHAR2(2000):=''; --結果 CURSOR myCursor IS SELECT * FROM 結果集(表名/視圖名/查詢結果) ORDER BY (結果集中的列名);--定義游標 myRecord myCursor%ROWTYPE; --定義游標記錄類型 BEGIN OPEN myCursor; --打開游標 IF myCursor %ISOPEN THEN --判斷打開成功 ---------------------游標打開成功 BEGIN LOOP --循環獲取記錄集 BEGIN FETCH myCursor into myRecord; IF myCursor%FOUND THEN --游標的FOUND屬性判斷是否有記錄 BEGIN myTabelName:='TEC_PARTTEC'; myTableRowComment:=myRecord.ID||' '||myRecord.CREATEDATE||' ' ||myRecord.CREATEUSER||' '||myRecord.ORGANIZATIONID||' ' ||myRecord.PARTID||' '||myRecord.PROCESSTYPE||' ' ||myRecord.VERSION||' '||myRecord.REMARK||' ' ||myRecord.STATE; result:='表名 '||myTabelName||' 列值 '||myTableRowComment; result:=myTabelName||' '||myTableRowComment; DBMS_OUTPUT.PUT_LINE(result); END; ELSE EXIT; --游標中的記錄為空 退出 END IF; --結束IF語句 END LOOP; --循環獲取記錄集 END ELSE DBMS_OUTPUT.PUT_LINE('游標沒有打開'); END IF; CLOSE myCursor; END;

--------------------------------------------------------------
改成下面的方法了:
包頭:
CREATE OR REPLACE TYPE OrderRowType AS OBJECT (columns1 VARCHAR2(10),columns2 VARCHAR2(20),columns3 VARCHAR2(100),columns4 VARCHAR2(5), columns5 NUMBER,columns6 NUMBER );
CREATE OR REPLACE TYPE OrderTableType AS TABLE OF OrderRowType;
FUNCTION Get_Test RETURN OrderTable1 pipelined;
包體:
FUNCTION Get_Test RETURN OrderTableType pipelined IS rowInfo_ OrderRowType; CURSOR get_info IS SELECT * FROM tableA ;
BEGIN FOR rec_data_ IN get_info LOOP rowInfo_ := OrderRowType(rec_data_.columns1,rec_data_.columns2,rec_data_.columns3,rec_data_.columns4,rec_data_.columns5,rec_data_.columns6); pipe ROW(rowInfo_); END LOOP; RETURN; END Get_Test;
