как объявить %ROWTYPE переменной, которая является слабо типизированной SYS _REFCURSOR?

В приведенном ниже коде я не могу объявить тип выборки -в переменную -как %ROWTYPE базовой таблицы, потому что SYS _REFCURSOR находится на выборке, которая объединяет две таблицы, а также выбирает несколько функций, вызываемых атрибутами. из двух базовых таблиц; то есть я не могу объявить как L _RECORD T%ROWTYPE

---
DECLARE
  P_RS SYS_REFCURSOR;
  L_RECORD P_RS%ROWTYPE;
BEGIN
  CAPITALEXTRACT(
    P_RS => P_RS
  );
    OPEN P_RS;
    LOOP
      BEGIN
        FETCH P_RS INTO L_RECORD;
        EXIT WHEN P_RS%NOTFOUND;
       ...
      EXCEPTION
        WHEN OTHERS THEN
       ...
      END;
    END LOOP;
    CLOSE P_RS;
END;
--------
CREATE or REPLACE PROCEDURE CAPITALEXTRACT
(
    p_rs OUT SYS_REFCURSOR
) AS
BEGIN
  OPEN p_rs for 
     select t.*,tminusone.*, f(t.cash), g(t.cash) FROM T t, TMINUSONE tminusone
    where t.ticket=tminusone.ticket;
END CAPITALEXTRACT;

Конечно, я не хочу определять статическую таблицу R со столбцами, возвращенными в SYS _REFCURSOR, а затем объявлять как L _RECORD R%ROWTYPE.

Отсюда и вопрос :как объявить %ROWTYPE переменной, которая является слабо типизированной SYS _REFCURSOR?

8
задан Jåcob 27 June 2012 в 17:23
поделиться