Выполнение гранта оракула в c # с использованием ExecuteSqlCommand и OracleParameter - PullRequest
0 голосов
/ 26 сентября 2019

Я пытаюсь выполнить грант, используя Entity Frameworks "ExecuteSqlCommand".В этом заявлении гранта грантополучатель является переменной.Примите следующий запрос в качестве оператора предоставления:

grant all on employee to :variableScheme with grant option

, если выполнить следующий код, я получаю сообщение об ошибке «ORA-00987: отсутствует или недопустимо имя (имена) пользователя»

Database.ExecuteSqlCommand(grantQuery, new object [] { Parameter });

Однако, если я использую метод string.Replace и затем выполняю приведенный выше код (без параметра oracle), это работает.Если я использую ExecuteSqlCommand в операторе вставки / обновления с параметрами, он также работает.

Почему использование OracleParameter приводит к ошибке здесь?

1 Ответ

0 голосов
/ 26 сентября 2019

Вы не можете использовать имя пользователя в качестве параметра привязки.Вы должны объединить строку:

grantQuery = String.Format("grant all on employee to {0} with grant option", variableScheme );
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...