ORA-01002: выборка из последовательности
Я создал процедуру в базе данных oracle, которая возвращает данные в ref-курсоре, и я хочу, чтобы она возвращала rowcount этого курсора также в качестве выходной переменной. После тестирования переменная P_count заполняется правильно, но когда я попытался открыть ее, она была заполнена правильно.
ORA-01002: fetch out of sequenceошибка срабатывает. Я уже читал об этом раньше и обнаружил, что проблема заключается в том, что я использую оператор fetch. Но до сих пор я не знал, как ее разрешить. Любая помощь приветствуется, спасибо.
Ниже приведена моя процедура:
PROCEDURE IS_CLIENT_LOGGED_IN (P_CLIENT_NUM Varchar2,P_CURSOR out SYS_REFCURSOR ,P_COUNT OUT NUMBER,P_ERROR out Varchar2) AS cur_rec Varchar2(1024); BEGIN BEGIN Open P_CURSOR FOR SELECT ID FROM tbl_registration WHERE tbl_client_id = P_CLIENT_NUM AND tbl_logout_date is null; LOOP FETCH P_CURSOR INTO cur_rec; EXIT WHEN P_CURSOR%notfound; P_COUNT := P_CURSOR%rowcount;--will return row number beginning with 1 END LOOP; EXCEPTION WHEN OTHERS THEN P_ERROR := 'Unable to select Data from tbl_registration' ||SQLERRM; END; END IS_CLIENT_LOGGED_IN;
Что я уже пробовал:
Я снял секционную петлю ... Курсор конца цикла открылся нормально, есть какие-нибудь подсказки?