Я пытаюсь выполнить запрос CREATE USER
для базы данных Oracle 12 с использованием библиотеки Oracle.ManagedDataAccess.Этот запрос отлично работает без использования именованных параметров.Но когда я пытаюсь использовать именованные параметры, похоже, что параметры не передаются в запрос правильно.
Я пытаюсь использовать параметры с помощью следующего кода (Примечание: я использую Oracle.ManagedDataAccess library):
using(OracleConnection con = new OracleConnection(_connectionString)) {
con.Open();
using(OracleCommand cmd = con.CreateCommand()) {
cmd.CommandText = "CREATE USER :username IDENTIFIED BY :password";
cmd.Parameters.Add("username", "A_TESTUSER");
cmd.Parameters.Add("password", "A_PASSWORD");
//cmd.Parameters.Add(":username", "A_TESTUSER"); <- also tried
//cmd.Parameters.Add(":password", "A_PASSWORD"); <- also tried
//cmd.Parameters.Add(":username", OracleDbType.Varchar2).Value = "A_TESTUSER"; <- also tried
//cmd.Parameters.Add(":password", OracleDbType.Varchar2).Value = "A_TESTPASS"; <- also tried
cmd.ExecuteNonQuery();
}
}
, что приводит к следующему исключению.
Oracle.ManagedDataAccess.Client.OracleException (0x80004005): ORA-01935: missing user or role name.
Запрос работает, когда я задаю его при выполнении запроса со встроенными данными, подобными этому
cmd.CommandText = "CREATE USER A_TESTUSER IDENTIFIED BY A_PASSWORD";
Я также пытался использовать @
вместо :
для указания параметров без успеха.Как передать параметры в запрос?