powered by simpleCommunicator - 2.0.59     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Отчетные системы [игнор отключен] [закрыт для гостей] / RS 2005 и Oracle 9.2.0.8
8 сообщений из 8, страница 1 из 1
RS 2005 и Oracle 9.2.0.8
    #36771612
ahtolllka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Помогите пожалуйста со следующей проблемой:

Есть процедура, возвращающая курсор, внутри процедуры много with, отхинтованных где-то inline, а где-то materialize. Я знаю, что недокументированными хинтами пользоваться не рекомендуется, но без них процедура просто не работает. Так вот, если вызывать её в PL/SQL Developer'е, то она отрабатывает корректно, однако же будучи помещенной в Reporting Services даёт ошибку "ORA-32036: не поддерживаемый случай подстановки имени запроса во фразу WITH", с которой я и пытался бороться хинтами. Судя по всему, оптимизатор при пуске процедуры из RS выбирает другой план запроса, нежели при пуске из интерфейса developer'a.

Мне бы хотелось заставить процедуру всегда выполняться по одному и тому же плану. Проблема еще и в том, что план запроса, который падает, я посмотреть не могу, т.к. судя по всему парсер его не осиливает и говорит, что не хватает скобки.

Посоветуйте, что можно сделать плз.
...
Рейтинг: 0 / 0
RS 2005 и Oracle 9.2.0.8
    #36771656
buven
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Может я не совсем правильно понял, поправьте если так. Вы поместили процедуру в RS. Вопрос - зачем? Почему бы ее просто не вызвать, а там уж оракл разберется, с каким планом ее вызывать?
...
Рейтинг: 0 / 0
RS 2005 и Oracle 9.2.0.8
    #36772206
ahtolllka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
buvenМожет я не совсем правильно понял, поправьте если так. Вы поместили процедуру в RS. Вопрос - зачем? Почему бы ее просто не вызвать, а там уж оракл разберется, с каким планом ее вызывать?
А как можно поместить процедуру в RS? Нет, я вызываю процедуру из RS, но это каким-то образом меняет план запроса. Судя по всему - из-за изменения параметров сессии.
...
Рейтинг: 0 / 0
RS 2005 и Oracle 9.2.0.8
    #36772805
tarrus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ahtolllkabuvenМожет я не совсем правильно понял, поправьте если так. Вы поместили процедуру в RS. Вопрос - зачем? Почему бы ее просто не вызвать, а там уж оракл разберется, с каким планом ее вызывать?
А как можно поместить процедуру в RS? Нет, я вызываю процедуру из RS, но это каким-то образом меняет план запроса. Судя по всему - из-за изменения параметров сессии.

Как вы вызываете процедуру?
...
Рейтинг: 0 / 0
RS 2005 и Oracle 9.2.0.8
    #36773184
ahtolllka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
tarrus,

Создаю параметры отчёта, в которые принимаю данные от пользовательского ввода.
Создаю dataset с подключением:
Type: Oracle, username и password прописываю явно. Впоследствии это подключение заменяется shared dataset'ом.

В dataset'e Command Type текста выставляю Stored Procedure, в Query String пишу <имя пакета>.<имя процедуры>. На вкладке parameters задаю привязку входящих переменных к заведённым параметрам отчёта. Курсор нигде не прописываю.

P.S. Сейчас линеаризовал граф связей в проблемном селекте внутри процедуры (так, что каждый блок в части with используется не более 1 раза и не требует материализации), всё стало работать, но решение крайне некрасивое, т.к. дублируются около 10 блоков в with, поэтому проблема остаётся актуальной.
...
Рейтинг: 0 / 0
RS 2005 и Oracle 9.2.0.8
    #36774291
tarrus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ahtolllka,

Попробуйте вызывать вашу процедуру через текстовый сценарий, а параметры передавать через создание текста сценария посредством выражения и склейки нужной строки.
...
Рейтинг: 0 / 0
RS 2005 и Oracle 9.2.0.8
    #36775042
ahtolllka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
tarrus,

А курсор сможет передаваться из неименованного блока текстового сценария?
...
Рейтинг: 0 / 0
RS 2005 и Oracle 9.2.0.8
    #36776358
tarrus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ahtolllkatarrus,

А курсор сможет передаваться из неименованного блока текстового сценария?

Я не понимаю что такое "неименованный блок текстового сценария". Текстовый сценарий это просто текст который уйдет на выполнение на сервер, сервер должен вернуть некий набор, который будет обработан отчетным сервером и отображен, если наборов придет несколько, то обработан отчетным сервером будет первый, т.е. любой скрипт должен всегда возвращать первым тот набор, который вы хотите использовать в отчете.
...
Рейтинг: 0 / 0
8 сообщений из 8, страница 1 из 1
Форумы / Отчетные системы [игнор отключен] [закрыт для гостей] / RS 2005 и Oracle 9.2.0.8
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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