Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Oracle Новый топик    Ответить
 ORA-28113: ошибка в предикате методики. Непонятная ситуация  [new]
-
Guest
Короче дело обстоит следующим образом:
при попытке инсерта через пхп выходит ошибка "ORA-28113: ошибка в предикате методики", когда как при тех же условиях (текущей схемы пользователя) например в pl sql developer и т.п. все прекрасно инсертиться.
22 сен 12, 08:39    [13205807]     Ответить | Цитировать Сообщить модератору
 Re: ORA-28113: ошибка в предикате методики. Непонятная ситуация  [new]
MazoHist
Guest
FGAC? Условия точно те же? В трейсе должна быть информация.

+
ORA-28113: ошибка в предикате методики

Сообщение об ошибке ORA-28113: policy predicate has error выдается при выполнении оператора SELECT или оператора ЯМД для таблицы, относительно которой заданы правила защиты, если соответствующая функция возвращает синтаксически или семантически неверное условие. Это условие при добавлении к исходному запросу дает синтаксически неправильный SQL-оператор.

При возникновении ошибки ORA-28113 в каталоге, заданном параметром инициализации USER DUMP DEST, генерируется файл трассировки. В нем будет сообщение об ошибке ORA-28113 и информация о текущем сеансе и ошибочном условии.

Пусть, например, функция реализована так, как показано ниже. Она возвращает условие, сравнивающее значение в столбце X с несуществующим столбцом таблицы:

tkyte©TKYTE816> create or replace function rls examp

2 (p schema in varchar2, p object in varchar2)

3 return varchar2

4 as

5 begin

6 return x --несуществующий стол6ец;

7 end;

Function created.

Так что запрос вида:

select * from t

будет переписан как:

select * from (select * from t where x = несуществующий стол6ец) Очевидно, поскольку в таблице T такого столбца нет, этот запрос выполнить нельзя.

tkyte©TKYTE816> select * from t;

select * from t *

ERROR at line 1:

ORA-28113: policy predicate has error

Функция успешно вернула условие, но при добавлении этого условия к запросу произошла ошибка. В конце текста соответствующего файла трассировки на сервере мы обнаружим:

*** SESSION ID:(8.409) 2001-04-16 17:08:10.669 *** 2001-04-16 17:08:10.669

Error information for ORA-28113: Logon user : TKYTE Table or View : TKYTE.T

Policy name : T POLIСY

Policy function: TKYTE.RLS EXAMP RLS predicate :
22 сен 12, 09:33    [13205832]     Ответить | Цитировать Сообщить модератору
 Re: ORA-28113: ошибка в предикате методики. Непонятная ситуация  [new]
-
Guest
Нашел ошибку - нужный контекст не ставил до запроса, там проверка идет в триггере.
1 окт 12, 02:55    [13247191]     Ответить | Цитировать Сообщить модератору
Все форумы / Oracle Ответить