以下代码,批量操作人员信息,程序调用存储过程时一直不成功,而在Oracle数据库里测试时没有问题。
  public boolean ceshi(ArrayList list,String loginid) { 
          //ARRAY aArray = getArray(list);//该函数调用的第二三个参数必须大写    
       System.out.println(this.getArray(list));
          CallableStatement stmt = null;    
          boolean backVal = false; 
          int v_out=0;
          DBConnection db= new DBConnection();
          if(db.openConnect())   conn=db.getConnection();
          try {      
            if (conn != null) {    
               stmt = conn.prepareCall("{call CESHI(?,?,?)}"); //调用某个存储过程 
               if(this.getArray(list)!=null){
                 stmt.setArray(1, this.getArray(list));  
               }
               stmt.setString(2, loginid.trim());
               stmt.registerOutParameter(3, OracleTypes.INTEGER);
               stmt.execute();    
               v_out = stmt.getInt(3);
               System.out.println("return:"+stmt.getInt(3));
               if(v_out!=-1){
                backVal=true;
               }
             } 
            } catch (SQLException e) {  
             e.printStackTrace();
             System.out.println(e.getMessage());
           
          } finally {    
         try {
                     if (cs != null) {
                         cs.close();
                     }
                     if (conn != null) {
                         conn.close();
                     }
                 } catch (Exception e) {
                  System.out.println(e.getMessage());
                 }//释放数据库连接    
          }    
          System.out.println(backVal);
          return backVal;  
            
         }    
        /**
         * 
         * @param conn
         * @param OracleObj  Oracle对象
         * @param Oraclelist Oracle数组
         * @param objlist
         * @return
         * @throws Exception
         */
       private  ARRAY getArray(ArrayList objlist) {    
             //ARRAY list = null;   
             DBConnection db= new DBConnection();
          if(db.openConnect())   {conn=db.getConnection();}
try {
if (objlist != null && objlist.size() > 0) {    
           StructDescriptor structdesc = new StructDescriptor("MAKECARDTYPE", conn);
STRUCT[] structs = new STRUCT[objlist.size()];    
       Object[] result = null;    
           for (int i = 0; i < objlist.size(); i++) {    
              result = new Object[1];
              result[0] = new String(objlist.get(0).toString());  
              structs[i] = new STRUCT(structdesc, conn, result);    
           }    
           ArrayDescriptor desc = ArrayDescriptor.createDescriptor("CARDIDLIST",conn);    
           ARRAY list = new ARRAY(desc, conn, structs); 
           return list;
        } 
} catch (SQLException e) {
e.printStackTrace();
System.out.println(e.getMessage());
}finally {    
         try {
                     if (conn != null) {
                         conn.close();
                     }
                 } catch (Exception e) {
                  e.printStackTrace();
                  System.out.println(e.getMessage());
                 }//释放数据库连接    
          }
return null;
       }