2012-01-09 30 views
0

我想,當我調用下面的函數來獲取每一行:獲得從REF CURSOR的所有記錄在一個包

CpuReporting.getgridusage(300) 

此功能是在一個CpuReporting封裝。它具有:

Function GetGridUsage(minutes_Input in Number) Return CurGridUsage; 
Type CurGridUsage is Ref Cursor Return RecGridUsage; 
Type RecGridUsage is Record (ConfigId Number, 
          Phase VarChar2(400), 
          Environment VarChar2(400), 
          SessionStartTime Date, 

我瀏覽在PL/SQL Developer中GetGridUsage功能,它有兩個參數:(結果)REF CURSOR和MINUSTES_INPUT在數量

我希望能夠獲取所有行,因爲我之前沒有使用過Ref Cursor,所以我真的很想知道你將如何編寫PL/SQL。

回答

1

假設CpuReporting是軟件包的名稱,你想要的東西像

DECLARE 
    l_cursor CpuReporting.CurGridUsage; 
    l_rec CpuReporting.RecGridUsage; 
BEGIN 
    l_cursor := CpuReporting.getGridUsage(300); 
    LOOP 
    FETCH l_cursor INTO l_rec; 
    EXIT WHEN l_cursor%notfound; 

    -- Do something with l_rec. As an example, print the Environment 
    dbms_output.put_line(l_rec.Environment); 
    END LOOP; 

    CLOSE l_cursor; 
END; 
1

如果你只是想看看在PL/SQL函數的輸出,你可以做到這一點

var r refcursor; 
exec :r := CpuReporting.getgridusage(300); 
print r; 
相關問題