Получить все записи из Ref Cursor в пакете - PullRequest
0 голосов
/ 09 января 2012

Я хотел бы получить каждую строку, когда я вызываю следующую функцию:

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,

Я просматривал функцию GetGridUsage в PL / SQL Developer, у него есть два параметра: (Результат) REF CURSOR и MINUSTES_INPUT IN NUMBER

Я хочу иметь возможностьчтобы получить все строки, и, поскольку я не работал с Ref Cursor, мне действительно интересно узнать, как вы будете писать PL / SQL.

Ответы [ 2 ]

1 голос
/ 09 января 2012

Если вы просто хотите увидеть вывод функции в PL / SQL, вы можете сделать это

var r refcursor;
exec :r := CpuReporting.getgridusage(300);
print r;
1 голос
/ 09 января 2012

Предполагая, 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;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...