} 这个报错 是什么情况啊Exception in thread "main" java.lang.NullPointerException at oracle.jdbc.driver.T4C8Oall.getNumRows(T4C8Oall.java:870) at oracle.jdbc.driver.T4CCallableStatement.executeForRows(T4CCallableStatement.java:957) at oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement.java:1160) at oracle.jdbc.driver.OraclePreparedStatement.executeInternal(OraclePreparedStatement.java:3285) at oracle.jdbc.driver.OraclePreparedStatement.executeQuery(OraclePreparedStatement.java:3329) at com.tuge.iptv.order.dao.impl.OrderGoodsDAOImpl.orderStatus(OrderGoodsDAOImpl.java:117) at com.tuge.iptv.util.Test.main(Test.java:66)
Sp_aj001_iu ( an_rtn_code OUT NUMBER, --返回代码,负数说明有错误 av_rtn_msg OUT VARCHAR2, --返回信息 an_ORD_ID IN tb_aj001.ord_id%TYPE, an_CUST_ID IN tb_aj001.cust_id%TYPE, an_TOT_ORD_AMT IN tb_aj001.tot_ord_amt%TYPE, an_acctf_send_schd_amt IN tb_aj001.acctf_send_amt%TYPE, av_SEND_BANK_CD IN tb_aj001.send_bank_cd%TYPE, av_SENDER IN tb_aj001.sender%TYPE, an_CARD_APPR_AMT IN tb_aj001.card_appr_amt%TYPE, an_ACCM_APPLY_AMT IN tb_aj001.accm_apply_amt%TYPE, an_CRDT_APPLY_AMT IN tb_aj001.crdt_apply_amt%TYPE, an_PCARD_APPLY_AMT IN tb_aj001.pcard_apply_amt%TYPE, av_etr_id IN VARCHAR2 ) 存储过程
Connection conn = session.connection();
ResultSet rs =null;
CallableStatement call = conn.prepareCall("{Call proc(?,?,?)}");
call.setString(0,"abc");
call.registerOutParameter(1, Types.VARCHAR);
call.registerOutParameter(2,Types.VARCHAR);
rs = call.executeQuery();
if(rs.next()){
System.out.println("存储过程得到的第一个返回值是:"+rs.getString(1));
System.out.println("存储过程得到的第二个返回值是:"+rs.getString(2));
}
Session session = HibernateSessionFactory.getSession();
Connection con = null;
CallableStatement cstmt = null;
ResultSet rs= null;
Transaction tr = null;
String backValue ="";
String backStr;
try{
tr = session.beginTransaction();
con = session.connection();
try {
cstmt = con.prepareCall(" call ${SHOP88.Sp_aj001_iu(?,?,?,?,?,?,?,?,?,?,?,?,?)}");
cstmt.registerOutParameter(1, Types.NUMERIC);
cstmt.registerOutParameter(2, Types.VARCHAR);
cstmt.setBigDecimal(3, orderNum);
cstmt.setBigDecimal(4, customId);
cstmt.setDouble(5, allPrice);
cstmt.setDouble(6,ACCTF_SEND_SCHD_AMT);
cstmt.setString(7, "CD1");
cstmt.setString(8, "ITV");
cstmt.setDouble(9, CARD_APPR_AMT);
cstmt.setDouble(10,ACCM_APPLY_AMT);
cstmt.setDouble(11, CRDT_APPLY_AMT);
cstmt.setDouble(12, PCARD_APPLY_AMT);
cstmt.setString(13, "ITV");
rs = cstmt.executeQuery();
if(rs.next()){
System.out.println("存储过程得到的第一个返回值是:"+rs.getString(1));
System.out.println("存储过程得到的第二个返回值是:"+rs.getString(2));
}
//backValue = cstmt.getString(1);
//backStr = cstmt.getString(2);
// System.out.println(cstmt.getString(1)+"====");
// if(backValue.equals(0) ){
// System.out.println("正常");
// return true;
// }
} catch (SQLException e) {
e.printStackTrace();
}
}catch(HibernateException e){
}
这个报错 是什么情况啊Exception in thread "main" java.lang.NullPointerException
at oracle.jdbc.driver.T4C8Oall.getNumRows(T4C8Oall.java:870)
at oracle.jdbc.driver.T4CCallableStatement.executeForRows(T4CCallableStatement.java:957)
at oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement.java:1160)
at oracle.jdbc.driver.OraclePreparedStatement.executeInternal(OraclePreparedStatement.java:3285)
at oracle.jdbc.driver.OraclePreparedStatement.executeQuery(OraclePreparedStatement.java:3329)
at com.tuge.iptv.order.dao.impl.OrderGoodsDAOImpl.orderStatus(OrderGoodsDAOImpl.java:117)
at com.tuge.iptv.util.Test.main(Test.java:66)
Sp_aj001_iu (
an_rtn_code OUT NUMBER, --返回代码,负数说明有错误
av_rtn_msg OUT VARCHAR2, --返回信息
an_ORD_ID IN tb_aj001.ord_id%TYPE,
an_CUST_ID IN tb_aj001.cust_id%TYPE,
an_TOT_ORD_AMT IN tb_aj001.tot_ord_amt%TYPE,
an_acctf_send_schd_amt IN tb_aj001.acctf_send_amt%TYPE,
av_SEND_BANK_CD IN tb_aj001.send_bank_cd%TYPE,
av_SENDER IN tb_aj001.sender%TYPE,
an_CARD_APPR_AMT IN tb_aj001.card_appr_amt%TYPE,
an_ACCM_APPLY_AMT IN tb_aj001.accm_apply_amt%TYPE,
an_CRDT_APPLY_AMT IN tb_aj001.crdt_apply_amt%TYPE,
an_PCARD_APPLY_AMT IN tb_aj001.pcard_apply_amt%TYPE,
av_etr_id IN VARCHAR2
)
存储过程