Tôi nhận được lỗi này:Làm thế nào để kết nối trong java như SYS với Oracle?
java.sql.SQLException: ORA-28009: connection as SYS should be as SYSDBA or SYSOPER
Cách khắc phục? (Tôi cần phải là SYS
). Cảm ơn.
Tôi nhận được lỗi này:Làm thế nào để kết nối trong java như SYS với Oracle?
java.sql.SQLException: ORA-28009: connection as SYS should be as SYSDBA or SYSOPER
Cách khắc phục? (Tôi cần phải là SYS
). Cảm ơn.
thử điều này:
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)
Đó là gì, Groovy? –
Câu hỏi được đặt ra trong java. – CapturedTree
whats the way trong file tomcat server.xml? – sns
Nếu bạn đã cố gắng kết nối với cơ sở dữ liệu như sau: connect SYS/<password>
bạn đã sử dụng cú pháp không còn hợp lệ (Sau Oracle 9i).
Thay vì cố gắng kết nối như sau:
connect SYS/<password> as SYSDBA or connect SYS/<password> as SYSOPER
Câu hỏi đặt ra là về kết nối qua Java, mà tôi đoán là JDBC. Các lệnh bạn đưa ra được sử dụng với SQL * Plus, nếu tôi không nhầm. –
Mã này hoạt động
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);
Bạn có thể sử dụng một Object OracleDataSource?
public class Database {
static OracleDataSource ods;
public static Connection openConnection(String URL, String user, String password, String option) throws SQLException
{
Connection conn = null;
Properties properties = new Properties();
properties.put("user", user);
properties.put("password", password);
ods = new OracleDataSource();
ods.setURL(URL);
if(option != null)
{
properties.put("internal_logon", option);
}
ods.setConnectionProperties(properties);
conn = ods.getConnection();
return conn;
}
}
Và gọi nó là như thế này:
Connection con = null;
con = Database.openConnection("YourJDBCConnectionURL", "YourSYSUser", "YourSYSPassword", "sysdba");
Answers đã ở đó,
bạn đang cố gắng để kết nối như sys
nhưng Server cho phép
hoặc sys as sysdba
hoặc
sys as sysoper
chỉ cần thay đổi tham số người dùng như một trong hai từ trên
user='sys as sysdba'
hoặc
user='sys as sysoper'
Cảm ơn đề xuất này có ích – learningloop
Nếu bạn muốn kết nối cơ sở dữ liệu của bạn với người dùng khác hơn là "sys" là "SYSDBA", sau đó bạn phải thay đổi trình điều khiển từ "mỏng" thành "oci" để thực hiện kết nối thành công.
try {
Class.forName("oracle.jdbc.driver.OracleDriver");
String DB_URL="jdbc:oracle:oci:@localhost:1521:orcl";
OracleDataSource ds1=new OracleDataSource();
Properties prop1 = new Properties();
prop1.setProperty("user","ravi");
prop1.setProperty("password","******");
prop1.setProperty("internal_logon","sysdba");
ds1.setConnectionProperties(prop1);
ds1.setURL(DB_URL);
OracleConnection conn1 = (OracleConnection)ds1.getConnection();
Statement stmt = conn1.createStatement();
ResultSet rs = stmt.executeQuery("select * from dba_users");
while (rs.next())
System.out.println(rs.getString(1));
conn1.close();
} catch (Exception e) {
System.out.println(e);
}
Bạn cần phải đặt SYSDBA với tham số String dùng như
String user="sys as sysdba"
Hãy thể hiện mã mà bạn sử dụng để kết nối. –
Khi bạn nói "trong java", ý của bạn là "qua JDBC"? –