使用Oracle.DataAccess从c#关闭oracle数据库

时间:2013-09-27 13:20:00

标签: c# oracle

我正在运行Oracle 10g数据库,目前正在用c#编写应用程序以与之交互。

我已经编写了连接数据库所需的内容,并且能够查询它以返回结果。我开始以SYSMAN身份登录,使用System.Data.OracleClient.But关闭并重新启动数据库我需要使用SYSDBA权限登录(如果我错了,请纠正我)因为我不能这样做使用System.Data.OracleClient我现在正在使用ODP,Oracle.DataAccess。

我的问题是我正在尝试运行命令“立即关机”,但我收到了错误:

Oracle.DataAccess.Client.OracleException ORA-00900:无效的SQL语句

关于我需要更改的内容的任何想法,以下是我用来执行查询的代码。

OracleConnection conn = new OracleConnection(
"Data Source=(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=smile)(PORT=1521)"+
"(CONNECT_DATA=(SERVER=DEDICATED)(SERVICE_NAME=MOUTH.smile)));"+
"User id=SYSMAN;Password=thepassword;DBA PRIVILEGE=SYSDBA";

int value;
OracleCommand cmd = new OracleCommand("shutdown immediate", conn);
value = cmd.ExecuteNonQuery();

我知道它连接正常,因为我查询了数据库并得到了结果,不确定我肯定拥有SYSDBA权限,而且不确定如何检查?

由于

1 个答案:

答案 0 :(得分:1)

这篇文章可能很有用:http://docs.oracle.com/html/E15167_01/OracleDatabaseClass.htm#CHDFBHBH

使用OracleDatabase.Shutdown方法并传递OracleDBShutdownMode.Immediate参数