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);
}
}