powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Странное поведение курсора
8 сообщений из 8, страница 1 из 1
Странное поведение курсора
    #39639584
GroMoZeKazzz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Столкнулся со странным поведением курсора.
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
declare
  l_inparam number(12) := &Номер_клиента;
  cursor cur_client_data is(
    большой select;
  rec_client_data cur_client_data%rowtype;
 
begin
    open cur_client_data;
      fetch cur_client_data
        into rec_client_data;
      if cur_client_data%notfound then
        dbms_output.put_line('Данные по номеру клиента не найдены');
      else
        loop
          fetch cur_client_data
            into rec_client_data;
          dbms_output.put_line('Бла-бла-бла' || chr(13) || chr(10));
        exit when cur_client_data%notfound;
        end loop;
      end if;
    close cur_client_data;
end; 


По номеру клиента есть 10 записей - запрос из курсора возвращает именно это количество. А вот с выполнением курсора какая-то непонятка - он так же возвращает 10 записей, но одна из записей задвоена и одна запись (нужная причем) в выборку не попадает.
...
Рейтинг: 0 / 0
Странное поведение курсора
    #39639588
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
GroMoZeKazzzкакая-то непонятка

Попробуй сам выполнить то, что написал, используя бумажку и ручку. Включая двойной фетч.
Может, тогда поймёшь куда пропадает запись.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Странное поведение курсора
    #39639589
Фотография Elic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
GroMoZeKazzzно одна из записей задвоена и одна запись (нужная причем) в выборку не попадает.Потому что ты неправильно работаешь с курсором. В данном случае достаточно передвинуть бла-бла в надлежащее место.
...
Рейтинг: 0 / 0
Странное поведение курсора
    #39639590
GroMoZeKazzz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Перенес "exit when cur_client_data%notfound;" до "if cur_client_data%notfound then" - работает корректно.
...
Рейтинг: 0 / 0
Странное поведение курсора
    #39639592
Фотография Elic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
GroMoZeKazzzПеренес "exit when cur_client_data%notfound;" до "if cur_client_data%notfound then" - работает корректно.Это тебе только кажется.
...
Рейтинг: 0 / 0
Странное поведение курсора
    #39639597
GroMoZeKazzz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Elic, да, показалось :)
При переносе нужная запись появляется, но общее количество на одну меньше, чем должно быть.
...
Рейтинг: 0 / 0
Странное поведение курсора
    #39639606
GroMoZeKazzz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Благодарю всех за советы! Вроде срослось. Переделал цикл.
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
 begin
      open cur_client_data;
      loop
        fetch cur_client_data
          into rec_client_data;
        exit when cur_client_data%notfound;
        if cur_client_data%notfound then
          dbms_output.put_line('Данные по номеру клиента не найдены');
        else
          dbms_output.put_line('Бла-бла-бла' || chr(13) || chr(10));
        end if;
      end loop;
      close cur_client_data;
 end;

...
Рейтинг: 0 / 0
Странное поведение курсора
    #39639608
Фотография andrey_anonymous
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
GroMoZeKazzz
Код: plsql
1.
2.
3.
4.
        exit when cur_client_data%notfound;
        if cur_client_data%notfound then
          dbms_output.put_line('Данные по номеру клиента не найдены');
 


Л - Логика!
...
Рейтинг: 0 / 0
8 сообщений из 8, страница 1 из 1
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Странное поведение курсора
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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