我在试着运行一个
CREATE USER
使用oracle.managedataaccess库查询oracle 12数据库。此查询在不使用命名参数的情况下工作正常。但是当我尝试使用命名参数时,看起来参数没有正确地传递给查询。
我尝试将参数与以下代码一起使用(注意:我使用
Oracle.ManagedData访问
图书馆):
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");
//cmd.Parameters.Add(":password", "A_PASSWORD");
//cmd.Parameters.Add(":username", OracleDbType.Varchar2).Value = "A_TESTUSER";
//cmd.Parameters.Add(":password", OracleDbType.Varchar2).Value = "A_TESTPASS";
cmd.ExecuteNonQuery();
}
}
导致以下异常。
Oracle.ManagedDataAccess.Client.OracleException (0x80004005): ORA-01935: missing user or role name.
当我用这样的数据内联运行查询时,当我进行设置时,查询会工作。
cmd.CommandText = "CREATE USER A_TESTUSER IDENTIFIED BY A_PASSWORD";
我也试着用
@
而不是
:
指示参数而不成功。我应该如何将参数传递给查询?