如何在Java中将SYS连接到Oracle?

use*_*818 29 java database oracle sys

我收到此错误:

java.sql.SQLException: ORA-28009: connection as SYS should be as SYSDBA or SYSOPER
Run Code Online (Sandbox Code Playgroud)

怎么修?(我需要SYS).谢谢.

sim*_*ous 37

试试这个 :

import java.sql as jsql
import java.lang as lang
driver, url, user, passwd = (
"oracle.jdbc.driver.OracleDriver",
"jdbc:oracle:thin:@localhost:1234:xxx1",
"sys as sysdba",
"xxx1")
 lang.Class.forName(driver)
 c = jsql.DriverManager.getConnection(url,user,passwd)
Run Code Online (Sandbox Code Playgroud)


Rah*_*kal 10

答案已经存在,

你试图连接,sys但服务器允许

sys as sysdba

要么

sys as sysoper
Run Code Online (Sandbox Code Playgroud)

只需将用户参数更改为上面的任何一个

user='sys as sysdba'
Run Code Online (Sandbox Code Playgroud)

要么

user='sys as sysoper'
Run Code Online (Sandbox Code Playgroud)


Ale*_*der 8

这段代码有效

String driverName = "oracle.jdbc.driver.OracleDriver";
Class.forName(driverName).newInstance();
String nameForConnect = "sys as sysdba";
String pass = "password";
String url = "jdbc:oracle:thin:@192.168.0.1:1521:ORCL";
Connection conn = DriverManager.getConnection(url, nameForConnect, pass);
Run Code Online (Sandbox Code Playgroud)


Kor*_*urk 5

如果您尝试像这样连接到数据库:connect SYS/<password>您使用的语法不再有效(在Oracle 9i之后)。

而是尝试按以下方式连接:

connect SYS/<password> as SYSDBA or connect SYS/<password> as SYSOPER
Run Code Online (Sandbox Code Playgroud)