代码
public class OracleConnect {
String strDriver_ = "jdbc:oracle:thin:@192.21.100.1:SID";
    String userName_ = "you";
String passWord_ = "asp";
Connection conn_ = null;
public synchronized Connection getConnection() {
try {
Class.forName("oracle.jdbc.driver.OracleDriver").newInstance();
conn_ =
DriverManager.getConnection(strDriver_, userName_, passWord_);
} catch (Exception sqlEx) {
sqlEx.printStackTrace();
}
return conn_; }
   public int storeProcedure(String storeProc)
   {
   String status = null;
   try {

   //Connection connection = getConnection();
   //CallableStatement cstmt = connection.prepareCall("{call "+storeProc+"()}");
   //cstmt.registerOutParameter(1,Types.INTEGER);
Connection conn= getConnection();    Statement stmt=conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_READ_ONLY);     String sql="select * from r_Fgi_Rwdc";     ResultSet rs=stmt.executeQuery(sql);     while(rs.next()) 
   status = rs.getString("DEVICENO");
   System.out.println("storeproce");
   System.out.println(status);
   rs.close();
       stmt.close(); 
       conn.close();    } 
   catch (Exception ex)
   {
   StringWriter buf = new StringWriter(1024);
   ex.printStackTrace();    }
   return 1;
   }
public static void main(String[] args)
{
OracleConnect connect = new OracleConnect();
connect.storeProcedure("hwsc.sp_test");
}

}异常出错
java.lang.ArrayIndexOutOfBoundsException: 7
at oracle.security.o3logon.C1.r(C1)
at oracle.security.o3logon.C1.l(C1)
at oracle.security.o3logon.C0.c(C0)
at oracle.security.o3logon.O3LoginClientHelper.getEPasswd(O3LoginClientHelper)
at oracle.jdbc.ttc7.O3log.<init>(O3log.java:290)
at oracle.jdbc.ttc7.TTC7Protocol.logon(TTC7Protocol.java:251)
at oracle.jdbc.driver.OracleConnection.<init>(OracleConnection.java:252)
at oracle.jdbc.driver.OracleDriver.getConnectionInstance(OracleDriver.java:365)
at oracle.jdbc.driver.OracleDriver.connect(OracleDriver.java:260)
at java.sql.DriverManager.getConnection(DriverManager.java:512)
at java.sql.DriverManager.getConnection(DriverManager.java:171)
at com.oracle.test.OracleConnect.getConnection(OracleConnect.java:33)
at com.oracle.test.OracleConnect.storeProcedure(OracleConnect.java:48)
at com.oracle.test.OracleConnect.main(OracleConnect.java:76)
java.lang.NullPointerException
at com.oracle.test.OracleConnect.storeProcedure(OracleConnect.java:50)
at com.oracle.test.OracleConnect.main(OracleConnect.java:76)

解决方案 »

  1.   

    会不会是端口号没写呀
    jdbc:oracle:thin:@192.21.100.1:port:SID
      

  2.   

    while(rs.next()) 
       status = rs.getString("DEVICENO");
       System.out.println("storeproce");
       System.out.println(status);
       rs.close();
           stmt.close(); 
           conn.close();    }stmt跟conn都关闭了,如果rs.next()==true,就会报错。
      

  3.   

    rs.close();
    stmt.close(); 
    conn.close();
    不要放在while循环中关闭,写在finally中
      

  4.   

    StackTrace信息倒数第二行
    OracleConnect.java:50
    第50行是哪一行?
      

  5.   

    conn_ =DriverManager.getConnection(strDriver_, userName_, passWord_);
    就是这一行
      

  6.   

    String strDriver_ = "jdbc:oracle:thin:@192.21.100.1:SID";
    没加上端口号
    你改为:String strDriver_ = "jdbc:oracle:thin:@192.21.100.1:1521:SID";
    试试看
      

  7.   

    端口号对了没?oracle默认是1521,但是你的数据库是不是先
      

  8.   

    检查Oracle Client的tnsnames.ora内记录的sid是否正确