Выход из resultSet - PullRequest
       5

Выход из resultSet

1 голос
/ 18 февраля 2020

Приведенный ниже код получает refcursor от SP, выполняет итерацию и добавление в ArrayList. код отлично работает в тестовой среде, но в более высокой среде он застревает в первом операторе отладки в то время как l oop. Исключений не обнаружено. Если я выполняю SP самостоятельно в SqlDeveloper, то он возвращает мне 1 запись. Может кто-нибудь помочь найти проблему?

Connection connection = null;
ArrayList viewArrayList = new ArrayList();
int sqlErrorNumber = 0;
String sqlErrorMessage = "";
CallableStatement cs = null;
ResultSet rs1 = null;
int cnt = 1;



ArrayList viewArrayList = new ArrayList();
    try {
          Class.forName("oracle.jdbc.driver.OracleDriver");
            connection = DriverManager.getConnection(
                              jdbcURL, jdbcUserName,
                              jdbcPassword);       

        cs = connection.prepareCall("begin PROC_VIEW_AC(?,?,?); end;");
        cs.registerOutParameter(cnt++, OracleTypes.INTEGER);
        cs.registerOutParameter(cnt++, OracleTypes.VARCHAR);  
        cs.registerOutParameter(cnt++, OracleTypes.CURSOR); 
        cs.execute();
        cnt=1;
        sqlErrorNumber = cs.getInt(cnt++);
        sqlErrorMessage = cs.getString(cnt++);

    if(sqlErrorNumber == 0)
    {
        rs1 = (ResultSet) cs.getObject(cnt++);   
        System.out.println("In method11 rs1 --- "+rs1.toString());

        while(rs1.next()){
                System.out.println("Inside while loop"+rs1.getFetchSize()+"---");
                DocGenModel caseMod =  (DocGenModel) new BeanProcessor().toBean(rs1, DocGenModel.class); 
                System.out.println("Inside while loop after cast .. ");
                viewArrayList.add(caseMod);
                System.out.println("Inside while loop after adding to arraList");
            }
        System.out.println("In method11 end of while --- ");
    }
    else{

             System.out.println("Error in  PROC_VIEW_AC Procedure :"+sqlErrorMessage);   

    }

        System.out.println("viewArrayList size ... "+viewArrayList.size());

    } catch (Exception e) {
                    System.out.println("Exception is  "+e.getMessage());


                }
finally{
    if(null != rs1) {try{rs1.close(); rs1=null;}catch(Exception e){}}                
        if(null != cs) {try{cs.close(); cs=null;}catch(Exception e){}}
        if(null != connection) {try{connection.close(); connection=null;}catch(Exception e){}}
    }

 return viewArrayList;

rs1.getString (1) -> дает значение 1-го столбца. Так что, похоже, получить запись, но не в состоянии набрать Cast для docGenModel.

...