次のエラーが表示されます。
java.sql.SQLException: ORA-28009: connection as SYS should be as SYSDBA or SYSOPER
直し方?(私はする必要がありますSYS
)。ありがとう。
これを試して :
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)
このコードは機能します
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);
次のようにデータベースに接続しようとした場合:connect SYS/<password>
無効な構文を使用しています (Oracle 9i 以降)。
代わりに、次のように接続してみてください。
connect SYS/<password> as SYSDBA or connect SYS/<password> as SYSOPER
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;
}
}
そして、次のように呼び出します。
Connection con = null;
con = Database.openConnection("YourJDBCConnectionURL", "YourSYSUser", "YourSYSPassword", "sysdba");