powered by simpleCommunicator - 2.0.39     © 2025 Programmizd 02
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Курсор и except
3 сообщений из 3, страница 1 из 1
Курсор и except
    #32041452
alex_v
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вопрос в следующем: есть табличка с данными и есть запрос выбирающий результат функции над строками.
Если, скажем, на 4 строчке в функции вылетает exception, то курсор считает только первые три строчки и все! Можно ли продолжить считывание из курсора после этой ошибочный строчки?

Вот пример:
TST
-----
11
22
qq
33

declare
cursor c1 is select to_number(n) n from tst;
rc c1%rowtype;
begin
open c1;
fetch c1 into rc;
while c1%found loop
begin
fetch c1 into rc;
dbms_output.put_line(to_char(rc.n));
exception
when others then NULL;--хотелось бы пропустить ошибочную строку!!
end;
end loop;
end;
...
Рейтинг: 0 / 0
Курсор и except
    #32041514
Linker
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Мне кажется, что тут просто надо разобраться с типами данных в этих строках: если там должны быть одни лишь цифры, то что в этих строках делает 'qq'?
Ставишь number и автоматически исключаешь подобную ситуацию еще на уровне ввода данных.
А если ты описАл сильно упрощенный случай, то, имхо, тут предварительно надо прогонять процедуру, проверяющую допустимость значений в строках TST, а потом уже вышеописанный курсор.
...
Рейтинг: 0 / 0
Курсор и except
    #32043680
ora600
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
for r in (select n from tst) loop
begin
dbms_output.put_line( to_char(to_number(r.n)) );
exception
when others then null;
end;
end loop;
...
Рейтинг: 0 / 0
3 сообщений из 3, страница 1 из 1
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Курсор и except
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]