Два связанных приложения используют функцию в пакете в нескольких запросах, чтобы вернуть некоторые данные в виде CSV. Выбранный и объединенный столбец является полем CLOB и может содержать HTML, специальные символы и т. Д. В приложениях мало пользователей, и поэтому они не используются интенсивно. Одним из них является приложение Flex, которое использует службы Oracle HTTP, а другим - приложение ASP.NET, которое использует ODP.NET. Приложения - это одно интегрированное приложение с гиперссылками друг на друга.
Вчера я получил несколько уведомлений о странной ошибке:
ORA-01031: недостаточно прав ORA-06512
Номер строки в пакете в деталях ошибки указывает, что ошибка была вызвана функцией, используемой в предложении выбора. Это происходит при вызове любым приложением в 75% случаев.
Верно ли, что в функции произошла ORA-06512
, которая затем вызвала ORA-01031 insufficient privilege error
? К сожалению, ORA-06512
является очень общей ошибкой и ничего мне не говорит. И почему это вызвало бы недопустимую ошибку привилегии? Учетные записи пользователей Oracle, используемые обоими приложениями, имеют право на выполнение в пакете, который содержит функцию.
Что касается функции ... она использовалась в течение 2 лет без каких-либо проблем. Кроме того, когда я вчера импортировал данные в QA и протестировал их, ошибки не возникало, независимо от того, сколько раз я забивал сервер запросами. Но при производстве ошибка возникает примерно в 75% случаев при одинаковых параметрах.
Администратор БД попытался помочь мне с трассировкой, но мы не смогли найти сообщение об ошибке в файлах трассировки.
Сегодня все возвращается к нормальной работе. Даже если я вбить сервер с запросами ошибка будет упорно не произойдет.
Чем вызвано это очень странное поведение вчера? У кого-нибудь из гуру есть какие-нибудь идеи?
РЕДАКТИРОВАТЬ: Я только что понял одну важную деталь. Столбец в таблице, который функция выбирает и объединяет в CSV, представляет собой CLOB.