Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Oracle [игнор отключен] [закрыт для гостей] / implicit cursor подводные камни / 7 сообщений из 7, страница 1 из 1
04.04.2017, 09:05
    #39432529
israelshamir
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
implicit cursor подводные камни
Доброго времени суток.

Есть pipelined функция в теле которой объявлен курсор. Запрос на котором он основан возвращает ~ 16к строк.

Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
FOR report_row IN data_for_report(task_id_IN) LOOP

...много вычислений...

    PIPE ROW
    (schema_name.t_location_of_executors_row  -- [color=red]это udt[/color]
      (
        col1
       ,col2
       ,...
       ,col18
      )
    );
END LOOP;


Собственно, отчет, который строится на основе этой функции должен содержать ~ 16к строк, но в итоге получается 589.
Вопрос: какие есть нюансы при работе c implicit cursor могущие привести к такому результату(выборка обрезана, сообщений об ошибках нет)?
Гугл либо не знает ответ на этот вопрос, либо я плохо его формулирую. Может кто ссылкой поделится на годный материал, в котором я смогу найти ответ...
...
Рейтинг: 0 / 0
04.04.2017, 09:06
    #39432531
israelshamir
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
implicit cursor подводные камни
israelshamir,

не пойму, как здесь текст подсвечивать правильно... Опять криво
...
Рейтинг: 0 / 0
04.04.2017, 09:30
    #39432561
Elic
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
implicit cursor подводные камни
israelshamir
Код: plsql
1.
...много вычислений...

На 590-ой строке там no_data_found
...
Рейтинг: 0 / 0
04.04.2017, 09:31
    #39432565
israelshamir
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
implicit cursor подводные камни
israelshamirДоброго времени суток.

Есть pipelined функция в теле которой объявлен курсор. Запрос на котором он основан возвращает ~ 16к строк.

Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
FOR report_row IN data_for_report(task_id_IN) LOOP

...много вычислений...

    PIPE ROW
    (schema_name.t_location_of_executors_row  -- [color=red]это udt[/color]
      (
        col1
       ,col2
       ,...
       ,col18
      )
    );
END LOOP;


Собственно, отчет, который строится на основе этой функции должен содержать ~ 16к строк, но в итоге получается 589.
Вопрос: какие есть нюансы при работе c implicit cursor могущие привести к такому результату(выборка обрезана, сообщений об ошибках нет)?
Гугл либо не знает ответ на этот вопрос, либо я плохо его формулирую. Может кто ссылкой поделится на годный материал, в котором я смогу найти ответ...

Заблы, извиняюсь, task_id_IN в параметре курсора в данном случае null по умолчанию и на выборку в курсоре не влияет.
...
Рейтинг: 0 / 0
04.04.2017, 09:33
    #39432570
israelshamir
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
implicit cursor подводные камни
Elicisraelshamir
Код: plsql
1.
...много вычислений...

На 590-ой строке там no_data_found

Спасибо за ответ, сейчас проверю.
...
Рейтинг: 0 / 0
04.04.2017, 10:28
    #39432627
israelshamir
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
implicit cursor подводные камни
israelshamirElicпропущено...
На 590-ой строке там no_data_found

Спасибо за ответ, сейчас проверю.

Так и есть, в PIPE ROW колонка UDT обернута в функцию, в которой возникает NO_DATA_FOUND.

Еще раз спасибо, Elic.
...
Рейтинг: 0 / 0
04.04.2017, 10:35
    #39432633
Elic
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
implicit cursor подводные камни
...
Рейтинг: 0 / 0
Форумы / Oracle [игнор отключен] [закрыт для гостей] / implicit cursor подводные камни / 7 сообщений из 7, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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