我想在我的C#应用程序中使用ORACLE特性来编译所有无效的对象,但是我收到了下面的错误。请您帮助我如何在C#中运行以下脚本:
"exec dbms_utility.compile_schema“(‘+schema+’);
我的职能:
internal void compileAllInvalideObject(string userId, string password, string schema)
{
//OracleConnection con = new OracleConnection();
string connectionString = "provider=MSDAORA;data source="+userId+";user id="+userId+";password="+password;
OleDbConnection myOleDbConnection = new OleDbConnection(connectionString);
OleDbCommand myOleDbCommand = myOleDbConnection.CreateCommand();
myOleDbCommand.CommandText = "exec dbms_utility.compile_schema('"+schema+"');";
myOleDbConnection.Open();
myOleDbCommand.ExecuteNonQuery();
myOleDbConnection.Close();
}错误:
ORA-00900:无效SQL语句
我在使用甲骨文9i。
发布于 2012-04-04 05:22:32
实际上,dbms_utility.compile_schema的作用与存储过程相同,因此我们不能像运行查询那样调用它,我们需要以调用存储过程的方式编写程序。
OracleConnection con = new OracleConnection();
//using connection string attributes to connect to Oracle Database
con.ConnectionString = "User Id="+userId+";Password="+password+";Data Source="+schema;
OracleCommand ocb = new OracleCommand("dbms_utility.compile_schema", con);
ocb.CommandType = CommandType.StoredProcedure;
ocb.Parameters.Add(new OracleParameter("@schema", userId));
con.Open();
ocb.ExecuteNonQuery();
Console.WriteLine("Connected to Oracle" + con.ServerVersion);
// Close and Dispose OracleConnection object
con.Close();
con.Dispose();
Console.WriteLine("Disconnected");https://stackoverflow.com/questions/9993556
复制相似问题