Добро пожаловать, Гость
Логин: Пароль: Запомнить меня
Теоретические аспекты и практические реализации создания, внедрения и использования баз данных, СУБД, хранилищ.
  • Страница:
  • 1
  • 2

ТЕМА:

Проблема запроса на секционированную таблицу в Oracle 12 года 9 мес. назад #2420

Все привет!
Проблема в следующем:
Есть в схеме приложения секционированная таблица, по которой делается некоторый отчет. Пользователи заходят в приложение под своими логинами и внутри программы им дается роль на работу с таблицей. В роли даны права на чтение таблицы и пользователи обращаются к ней через public synonym с таким-же именем. Т.е. в коде приложения все запросы набраны без указания схемы. Так вот, когда запросом выдергиваются данные из секционированной таблицы, то иногда возникает ошибка:
ORA-12801: error signaled in parallel query server P000
ORA-14101: partition extended table name cannot refer to a synonym.

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

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Re: Проблема запроса на секционированную таблицу в Oracle 12 года 9 мес. назад #2421

ALTER SESSION SET CURRENT_SCHEMA=***
*** - схема в которой секционированная таблица.
Но будь осторожен, если пользователь имеет данные в своей схеме

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Re: Проблема запроса на секционированную таблицу в Oracle 12 года 9 мес. назад #2422

А при этом пользователю будут доступны все объекты схемы? (было бы нежелательно)

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Re: Проблема запроса на секционированную таблицу в Oracle 12 года 9 мес. назад #2423

Доступны будут те, на которые дашь доступ ролью. Если не дашь доступ, то они его иметь и не будут, так что тут все норм.

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Re: Проблема запроса на секционированную таблицу в Oracle 12 года 9 мес. назад #2424

я так понял, что в запросах имя партиций явно не используется? Если так, то видимо чудит PQO.

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Re: Проблема запроса на секционированную таблицу в Oracle 12 года 9 мес. назад #2425

Dior, Огромное спасибо!

Gubin, Да, в запросе таблица указана просто без partition(). Подозреваю, что когда оптимизатор начинает эту фигню выполнять он перестраивает предложение SQL добавив в него partition(), а это через синоним уже не работает. Думал поможет хинт NOREWRITE, но это меня не спасло.

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

  • Страница:
  • 1
  • 2
Время создания страницы: 0.301 секунд