用户名 :sys
密码: 我自己设定的
database:ORCL
connect as :SYSDBA
出现无法解析指定的连接标识符,怎么解决?
我是初次使用oracle。
------解决方案--------------------------------------------------------
需要特殊处理:
Properties conProps = new Properties();
conProps.put("user", userID);
conProps.put("password", userPassword);
conProps.put("internal_logon", "sysdba"); // 主要就是这行代码
Class.forName(driverClass).newInstance();
cn = DriverManager.getConnection(connectionURL, conProps);
------解决方案--------------------------------------------------------
你没有用过命令行下的sqlplus来连接Oracle数据库么?
sqlplus sys/internal as sysdba
因为sys用户全力非常高,所以在连接数据库时不能以普通用户身份连接,必须指定身份为 sysdba
而在JDBC下,DriverManager.getConnection()一般只能传递 用户名和密码 这两个参数,无法写入“as sysdba” 这样的语法。
所以要用Properties来进行特殊处理。
------解决方案--------------------------------------------------------
忘了说明下,你标题中“connection as SYS should be as SYSDBA or SYSOPER”
得原因就是:“因为sys用户权利非常高,所以在连接数据库时不能以普通用户身份连接,必须指定身份为 sysdba”
------解决方案--------------------------------------------------------
又看了遍你的问题,发现似乎你的标题跟问题内容不符,麻烦你详细说下你的操作场景和完整错误信息。