|
Курсор и except
|
|||
---|---|---|---|
#18+
Вопрос в следующем: есть табличка с данными и есть запрос выбирающий результат функции над строками. Если, скажем, на 4 строчке в функции вылетает exception, то курсор считает только первые три строчки и все! Можно ли продолжить считывание из курсора после этой ошибочный строчки? Вот пример: TST ----- 11 22 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; ... |
|||
:
Нравится:
Не нравится:
|
|||
07.08.2002, 12:48 |
|
Курсор и except
|
|||
---|---|---|---|
#18+
Мне кажется, что тут просто надо разобраться с типами данных в этих строках: если там должны быть одни лишь цифры, то что в этих строках делает 'qq'? Ставишь number и автоматически исключаешь подобную ситуацию еще на уровне ввода данных. А если ты описАл сильно упрощенный случай, то, имхо, тут предварительно надо прогонять процедуру, проверяющую допустимость значений в строках TST, а потом уже вышеописанный курсор. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.08.2002, 15:08 |
|
|
start [/forum/topic.php?fid=52&fpage=2844&tid=1993194]: |
0ms |
get settings: |
7ms |
get forum list: |
13ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
31ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
49ms |
get tp. blocked users: |
2ms |
others: | 282ms |
total: | 407ms |
0 / 0 |