2017-02-16 17 views
1

Я новичок в Oracle. Я просто хочу захватить результат выбора в переменной, а затем я хочу использовать эту переменную для многократной работы над этими данными, как это делается в Sql с использованием переменной таблицы.Как хранить результаты в типе и выборке в Oracle

Я попытался, как показано ниже:

BEGIN 
    DECLARE 
     TYPE FullRecord IS RECORD (RNumber NUMBER); 
     rec FullRecord; 
    BEGIN 
     SELECT RNumber 
     INTO rec 
     FROM tableData; 
    END; 

END 

;

+0

поиска PLSQL таблицы – GurV

+0

мое требование заключается в том, что ResultSet имеет несколько столбцов (около 15), и все они, вступив в нескольких таблицах, поэтому хотят, чтобы захватить эти данные и что данные будут использоваться в ходе всей процедуры. –

+0

Да. вы можете сделать все это с помощью таблицы PLSQL – GurV

ответ

2

Необходимо BULK COLLECT. Смотрите ниже:

DECLARE 
     TYPE FullRecord1 IS RECORD (RNumber NUMBER);   
     TYPE FullRecord is table of FullRecord1 index by pls_integer;   
     rec FullRecord; 
BEGIN 
     SELECT RNumber 
     BULK COLLECT INTO rec 
     FROM tableData; 

    for i in 1..rec.count 
    loop 

    dbms_output.put_line(rec(i).RNumber); 
    end loop; 

END; 

читать намного лучше Explaination Here