Функция базы данных выполняется только с разрешением на чтение - PullRequest
0 голосов
/ 22 октября 2018

У меня есть разрешение на чтение только для базы данных устаревшей системы, из которой я только что читаю, и у меня есть этот огромный View View, который я пытаюсь настроить.Теперь в запросе представления есть несколько вызовов функций, к которым у меня нет прав доступа.Мой первый вопрос: если я запрашиваю разрешение на выполнение этих функций, и у этих функций есть команды обновления или удаления, будут ли они выполняться?

Второй вопрос: если временная таблица будет создана во время выполнения функции, смогу ли я выполнить функцию без проблем?Другими словами, может ли функция создавать и заполнять временную таблицу при вызове моим пользователем?

Ваша помощь действительно ценится!

1 Ответ

0 голосов
/ 22 октября 2018

В общем, если вы делаете запрос SELECT, который вызывает функцию, он не может выполнить INSERT / UPDATE / DELETE без повышения ORA-14551: cannot perform a DML operation inside a query.Есть способы обойти это (например, используя автономные транзакции), но они не очень распространены.На вашем месте я бы сам проверил функции, чтобы убедиться, что в них нет вставок или обновлений.

Я не знаю, что вы подразумеваете под "если временное создание выполняется с помощью этих функций"поэтому я не могу ответить на ваш второй вопрос.Если вы обновите свой вопрос с более подробной информацией, я отредактирую этот ответ.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...