Ниже я создал процедуру для чтения всех данных из одной таблицы и заполнения ее в сетке в формате .net.
CREATE OR REPLACE PROCEDURE EVMPDADM.GETALLBATCHES_ARTICLE_57(p_batchstatus OUT XEVMPD_SUBMITTEDBATCH%ROWTYPE )
IS
TYPE batch_status IS TABLE OF XEVMPD_SUBMITTEDBATCH%ROWTYPE INDEX BY PLS_INTEGER;
l_batchstatus batch_status;
BEGIN
SELECT * BULK COLLECT INTO l_batchstatus FROM XEVMPD_SUBMITTEDBATCH ;
FOR i IN 1..l_batchstatus.count LOOP
p_batchstatus:= l_batchstatus(i);
END LOOP;
END GETALLBATCHES_ARTICLE_57;
Чтобы проверить, работает ли процесс нормально, я попытался распечатать данные, используя приведенный ниже блок Pl-sql:
DECLARE
v_batchstatus XEVMPD_SUBMITTEDBATCH%ROWTYPE;
BEGIN
EVMPDADM.GETALLBATCHES_ARTICLE_57(v_batchstatus);
DBMS_OUTPUT.PUT_LINE( v_batchstatus.Batch_id || ' ' || v_batchstatus.BATCH_DESCRIPTION || ' ' || v_batchstatus.STATUS || ' ' ||v_batchstatus.RECORD_STATUS || ' ' ||v_batchstatus.NUMBER_OF_RECORDS);
END;
/
Но из этого процесса я получаю только последнюю строку. Я хочу распечатать все записи, присутствующие в таблице. может ли кто-нибудь помочь мне понять, что не так в приведенном выше коде.
%rowtype
вdbms_output.put_line
. Вы можете передать определенные скалярные атрибуты, напримерdbms_output.put_line( v_batchstatus.col1 || ' ' || v_batchstatus.col2 || ... );
, но вам придется перечислить атрибуты, которые вы хотите видеть. - person Justin Cave   schedule 18.08.2016