oracle 存储过程入参 出参 java中调用简单案列

create or replace procedure testmz(inYear in NUMBER,
                               inmonth in VARCHAR,
                               qtynum out number
                              )
as
begin
  select   b.cfone+b.cftwo+b.cfthree  into  qtynum   from  CT_BI_NORM a  inner join  CT_BI_NORMENTRY b on a.fid=b.fparentid  where  fnumber='00024'and a.cfinyear=inYear   and b.cfinmonth =inmonth   ;
end;

2、java中调用

package com.kingdee.eas.custom.test.app;

import java.sql.CallableStatement;
import java.sql.Connection;
import java.sql.SQLException;
import java.sql.Types;

import org.apache.log4j.Logger;

import com.kingdee.bos.BOSException;
import com.kingdee.bos.Context;
import com.kingdee.bos.dao.IObjectValue;
import com.kingdee.bos.framework.ejb.EJBFactory;
import com.kingdee.eas.custom.test.DemoInfo;
import com.kingdee.util.db.SQLUtils;

public class DemoControllerBean extends AbstractDemoControllerBean {
	private static Logger logger = Logger
			.getLogger("com.kingdee.eas.custom.test.app.DemoControllerBean");

	@Override
	protected void _excjob(Context ctx, IObjectValue model) throws BOSException {
		// TODO Auto-generated method stub
		DemoInfo info = (DemoInfo) model;
		String inYear = info.getInYear();
		String inmonth = info.getInMonth();
		Connection conn = null;
		CallableStatement pc = null;
		try {
			conn = EJBFactory.getConnection(ctx);
			pc = conn.prepareCall("{call testmz (?,?,?) }");
			//输入参数1
			pc.setFloat(1,Float.parseFloat(inYear));
			//输入参数2
			pc.setString(2, inmonth);
			//输出参数3
			pc.registerOutParameter(3, Types.FLOAT);
			pc.execute();
			double double1 = pc.getDouble(3);
			System.out.println("计算结果:----------"+double1+"---------------------------");
		} catch (SQLException e) {
			e.printStackTrace();
		} finally {
			SQLUtils.cleanup(pc, conn);
		}

		super._excjob(ctx, model);
	}

}

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值