Выполнение хранимого процесса Oracle как другого пользователя

Я в основном начинающий оракул, так что простите, если это глупый вопрос ...

У меня есть схема под названием «КОД» с сохраненным процессом, который выполняет произвольный SQL (сейчас, пожалуйста, игнорируйте потенциальные проблемы безопасности, связанные с этим). Переданный SQL выберет данные; но все данные находятся в любой схеме A, B или C - но SQL будет когда-либо выбирать только из ОДНОЙ схемы за один раз.

Например: пользователь типа A создает строку «SELECT * FROM A.USERTABLE» - в то время как пользователь типа B создает строку «SELECT * FROM B.USERTABLE».

Я пытаюсь разрешить пользователю не указывать свою схему явно. Во внешнем приложении .net; Я уже знаю, относятся ли они к типу A, B или C. Я хочу, чтобы все три просто введите «SELECT * FROM USERTABLE».

Проблема в том, что я не знаю, как это сделать. Мое приложение может выполнять proc только в схеме «CODE», поэтому я не могу просто продублировать код и позволить пользователю A вызвать «A.ExecuteSQL».

Я попробовал несколько вещей; но пока ничего не получалось. Я хочу, чтобы процесс ExecuteSQL оставался в схеме CODE; но когда передается 'USERTABLE', мне нужно знать, что иногда это означает A.USERNAME, а иногда B.USERNAME.

Какие-либо предложения?

Ответы на вопрос(2)

Ваш ответ на вопрос