CallableStatement call = conn.prepareCall("{?=call pack_handleht.getHtCsfbje(?)}");
这一句调用包pack_handleht里面的一个函数getHtCsfbje!?表示占位符(函数必须用?=来接受返回值),意思是有几参数.最开始的?是返回参数,后面的(?)这个是输入参数。至于
("{?=call pack_handleht.getHtCsfbje(?)}");这是JAVA中调用Oracle中包和过程的固定的格式
call.registerOutParameter(1,OracleTypes.CURSOR);
这句的意是注册这个函数的返回值的类型registerOutParameter是CallableStatement的对象中的一个方法,有几个参数,第一个是在上面的("{?=call pack_handleht.getHtCsfbje(?)}");这个式子中,将由哪一个做为返回值,它的下标是从1开始,显然是第一个?,第二个是返回类型。
call.setObject (2,hth);
这是设置输入参数的类型,
call.execute();
这是开始执行
ResultSet rstCsfbje =  (ResultSet) call.getObject(1);
这是用ResultSet的对象来接有执行完后返回值。