Java 调用 Oracle 存储过程

最近用到别人系统的存储过程,调试了很长时间特意做个笔记:

/**
* 获取源数据
* @throws Exception
*/
public void getSourceData()throws Exception{
//存储声明
CallableStatement cs = null ;
//数据结果集
ResultSet rs = null;
try {
//预处理存储
cs = this.getSourceConn().prepareCall("{ call anhuidb.pr_ahylsfc_scd(?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?) }");
//设置参数
cs.setString(1, "TEEMS00000130S000E");
cs.setDate(2, new java.sql.Date(sdf.parse("2010-06-01").getTime()));
cs.setDate(3, new java.sql.Date(sdf.parse("2010-06-30").getTime()));
//设置空参数
cs.setNull(4, Types.INTEGER);
cs.setNull(5, Types.INTEGER);
cs.setNull(6, Types.INTEGER);
cs.setNull(7, Types.INTEGER);
cs.setNull(8, Types.INTEGER);
cs.setNull(9, Types.INTEGER);
cs.setNull(10, Types.INTEGER);
cs.setNull(11, Types.INTEGER);
//设置要输出的游标
cs.registerOutParameter(12,oracle.jdbc.OracleTypes.CURSOR);
//执行存储
cs.execute();
//获取游标的结果集,注意:索引要个输出游标的索引12一致
rs = (ResultSet)cs.getObject(12);
//遍历结果集
while(rs.next()){
System.out.println("*****************" + rs.getString(1));
}
} finally{
//关闭结果集
if(rs != null)rs.close();
//关闭存储声明
if(cs != null)cs.close();
}

}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值