连接代码如下:String url="jdbc:odbc:demo";
String query="SELECT * FROM Student";

try{
Class.forName("oracle.jdbc.driver.OracleDriver");
}catch(java.lang.ClassNotFoundException e){

}try{
DriverManager.setLogStream(System.out);
Connection con=DriverManager.getConnection(url,"sys","orcl");

Statement st=con.createStatement();
st.getResultSet();
报错如下:
java.sql.SQLException: [Microsoft][ODBC driver for Oracle][Oracle]ORA-28009: connection to sys should be as sysdba or sysoper
at sun.jdbc.odbc.JdbcOdbc.createSQLException(JdbcOdbc.java:6957)
at sun.jdbc.odbc.JdbcOdbc.standardError(JdbcOdbc.java:7114)
at sun.jdbc.odbc.JdbcOdbc.SQLDriverConnect(JdbcOdbc.java:3073)
at sun.jdbc.odbc.JdbcOdbcConnection.initialize(JdbcOdbcConnection.java:323)
at sun.jdbc.odbc.JdbcOdbcDriver.connect(JdbcOdbcDriver.java:174)
at java.sql.DriverManager.getConnection(DriverManager.java:582)
at java.sql.DriverManager.getConnection(DriverManager.java:185)
at com.isoftstone.biz.Student.main(Student.java:21)
Closing connection (SQLFreeConnect), hDbc=50664848
Closing environment (SQLFreeEnv), hEnv=50664680
getConnection(url,"sys","orcl")只有3个参数, 错误的意思是要sys以系统管理员的身份登录,请问怎么把身份也传进去呢??
在线等 谢谢

解决方案 »

  1.   

    你这个账户在pl/sql和sql develop里面可以用normal方式登录吗
      

  2.   

    grant connect to sys with admin option;
    但是你的sys本来就是管理员DBA啊
    url应该这么写吧?
    jdbc:oracle:thin:@localhost:1521:demo
      

  3.   

    不能 要用能在pl/sql和sql develop里面可以用normal方式登录的账号吗?
      

  4.   

    重发下代码:选的黄色的字体根本看不清
     String url="jdbc:odbc:demo"; 
    String query="SELECT * FROM Student"; try{ 
    Class.forName("oracle.jdbc.driver.OracleDriver"); 
    }catch(java.lang.ClassNotFoundException e){ }try{ 
    DriverManager.setLogStream(System.out); 
    Connection con=DriverManager.getConnection(url,"sys","orcl"); Statement st=con.createStatement(); 
    st.getResultSet(); 还有回2楼的,我用了一个可以用normal登录的账号试了下,结果还是报错 错误提示还是乱码:java.sql.SQLException: [Microsoft][ODBC ??????????] ??Ϣ????Խ??
      

  5.   

    我以前做的时候都是用normal帐号登录的,其他类型帐号好像不行的,但你报错怎么和microsoft组件有关啊,这就搞不懂了
      

  6.   

    完整代码:
    public static void main(String[] args) {
    String url="jdbc:odbc:demo";
    String query="SELECT * FROM test";

    try{
    Class.forName("oracle.jdbc.driver.OracleDriver");
    }catch(java.lang.ClassNotFoundException e){

    }try{
    DriverManager.setLogStream(System.out);
    Connection con=DriverManager.getConnection(url,"ZYG","ZYG");

    Statement st=con.createStatement();
    st.getResultSet();
    }catch(SQLException e){
    System.out.println("\n***SQLException caught***\n");
    } }}现在有一个normal账号了 该怎么改?
      

  7.   

    http://www.rgagnon.com/javadetails/java-0112.html
    参考一下这个例子,还有这个
    http://www.orafaq.com/wiki/JDBC我现在没环境测试,我已经不做java了。