1

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

我已经编写了连接数据库所需的内容,并且能够查询它以返回结果。我首先使用 System.Data.OracleClient 以 SYSMAN 身份登录。但是为了关闭并重新启动数据库,我需要使用 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 权限,不知道如何检查?

谢谢

4

1 回答 1

1

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

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

于 2014-01-04T15:45:15.783 回答