很抱歉,如果这看起来像一个愚蠢的问题,但我认为这只是一个随机的错误。我在使用Oracle DB的c#中创建了一个应用程序。我以前使用过参数化,除了代码的特定部分外,它运行得很好:
OracleCommand busca = new OracleCommand("ALTER SEQUENCE :Name INCREMENT BY -1", conn);
busca.BindByName = true;
busca.Parameters.Add("Name", id);
busca.ExecuteNonQuery();
这是错误:ORA-01036:非法变量名称/编号
Id是一个字符串,作为函数中的参数出现。有趣的是,如果我将名称直接放在字符串中,它就可以了。连接相同:
OracleCommand busca = new OracleCommand("ALTER SEQUENCE "+id+" INCREMENT BY -1", conn);
OracleCommand busca = new OracleCommand("ALTER SEQUENCE id_new INCREMENT BY -1", conn);