如何從存儲過程(OUT變量)返回的引用遊標中獲取並在SQL * PLUS中將結果行打印到STDOUT中?由存儲過程返回的PL/SQL打印輸出遊標
Oracle存儲過程:
PROCEDURE GetGrantListByPI(p_firstname IN VARCHAR2, p_lastname IN VARCHAR2,
p_orderby IN VARCHAR2, p_cursor OUT grantcur);
PL/SQL:
SET SERVEROUTPUT ON;
DECLARE
TYPE r_cursor IS REF CURSOR;
refCursor r_cursor;
CURSOR grantCursor IS
SELECT last_name, first_name
FROM ten_year_pis
WHERE year_added = 2010;
last_name VARCHAR2(100);
first_name VARCHAR2(100);
BEGIN
OPEN grantCursor;
FETCH grantCursor INTO last_name, first_name;
WHILE grantCursor%FOUND LOOP
PMAWEB_PKG.GetGrantListByPI(last_name, first_name, 'last_name', refCursor);
--HOW DO I LOOP THROUGH THE RETURNED REF CURSOR (refCursor)
--AND PRINT THE RESULTING ROWS TO STDOUT?
FETCH grantCursor into last_name, first_name;
END LOOP;
CLOSE grantCursor;
END;
/
的問題是,所述存儲過程返回一個引用遊標作爲兩個表之間的聯接結果。如何引用連接表的返回類型? – elpisu 2011-04-28 18:15:41
你需要知道你的光標在類型和大小方面是什麼,才能理解它。使用連接中的字段定義一條記錄,並將這些行提取到記錄中。 – DCookie 2011-04-28 20:07:27
謝謝@DCookie,但如果我必須從每一行只讀取一列,那麼我可以做什麼。我是否需要創建整個結構? – 2012-10-17 08:50:47