Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Oracle Новый топик    Ответить
 INTO в цикле  [new]
leprechaun
Member

Откуда:
Сообщений: 153
Добрый день. Сходу не нашел ответа на простой (ну других у меня нет пока) вопрос.

Есть цикл, в нем через команду INTO помещаются поля в запись.
И есть ситуации с исключением DATA_NOT_FOUND, но мне нужно не прервать весь блок, а просто пропустить эту итерацию.

Это как правильно делается?
4 июл 14, 16:51    [16261280]     Ответить | Цитировать Сообщить модератору
 Re: INTO в цикле  [new]
-2-
Member

Откуда:
Сообщений: 15330
leprechaun
Это как правильно делается?
К pl/sql reference прикладываются умственные способности.
4 июл 14, 16:55    [16261307]     Ответить | Цитировать Сообщить модератору
 Re: INTO в цикле  [new]
Vint
Member

Откуда: Москва
Сообщений: 4564
leprechaun,

на русском языке куча книг по PL\SQL прочти хотя бы одну... это сократить глупые вопросы на порядок.
"no_data_found exception"
4 июл 14, 16:56    [16261310]     Ответить | Цитировать Сообщить модератору
 Re: INTO в цикле  [new]
leprechaun
Member

Откуда:
Сообщений: 153
Блин я читаю книги параллельно, но не всё может понимаю сразу или запоминаю

no_data_found exception знаю, я же написал, уносит в конец блока, а у меня в цикле обработка и вывод строк, результат не должен обломиться из-за пустых INTO
4 июл 14, 17:01    [16261335]     Ответить | Цитировать Сообщить модератору
 Re: INTO в цикле  [new]
tru55
Member

Откуда: СПб
Сообщений: 19790
Создай блок только для SELECT
4 июл 14, 17:09    [16261389]     Ответить | Цитировать Сообщить модератору
 Re: INTO в цикле  [new]
stax..
Guest
leprechaun,

  1  declare
  2   e emp.ename%type;
  3   d dept.deptno%type;
  4  begin
  5   for r in (select deptno from dept order by dname) loop
  6     dbms_output.put('отдел '||r.deptno||' ');
  7     begin
  8       select ename into e from emp where deptno=r.deptno and rownum<2;
  9       dbms_output.put_line(e); --обрабативаем
 10     exception
 11      when no_data_found then
 12        dbms_output.put_line('Ой'); --пропускаем
 13     end;
 14   end loop;
 15   null;
 16* end;
SQL> /
отдел 10 CLARK
отдел 40 Ой
отдел 20 SMITH
отдел 30 ALLEN

PL/SQL procedure successfully completed.


.....
stax
4 июл 14, 17:09    [16261392]     Ответить | Цитировать Сообщить модератору
 Re: INTO в цикле  [new]
leprechaun
Member

Откуда:
Сообщений: 153
О точно, теоретически даже читал об этом, а как до дела забыл про вложенные блоки. Спасибо большое!

Все книги и методички хороши, но впрок плохо запоминается, только обзорно о возможностях узнаешь.
Ну и смутно помнишь "где-то такое должно быть". Вот когда задача парит, там уже другие механизмы мозга работают)
4 июл 14, 17:23    [16261494]     Ответить | Цитировать Сообщить модератору
Все форумы / Oracle Ответить