oracle jdbc执行,java jdbc 执行oracle存储过程

java代码

public Connection conn() {

try {

// 第一步:加载JDBC驱动

Class.forName("oracle.jdbc.driver.OracleDriver");

// 第二步:创建数据库连接

con = DriverManager.getConnection("jdbc:oracle:thin:@192.177.2.2:1521/db", "test","test");

return con;

} catch (Exception e) {

e.printStackTrace();

return null;

}

}

public List getCanorderTemplateBySms(String version, String orderFrom,String acco, String accoType, String tunnelType, String callFrom) {

CallableStatement callStat=null;

ResultSet rs=null;

List list=new ArrayList();

String sql = "{call pkg_customerorder.sp_sms_canorder2(?,?,?,?,?,?,?,?,?)}";

try {

callStat = this.conn().prepareCall(sql);

callStat.setString(1,version);

//out

callStat.registerOutParameter(2,oracle.jdbc.OracleTypes.VARCHAR);

callStat.registerOutParameter(3,oracle.jdbc.OracleTypes.VARCHAR);

callStat.registerOutParameter(4,oracle.jdbc.OracleTypes.CURSOR);

//in

callStat.setString(5, orderFrom); //可订制渠道 1:客服 2:网站 3: 网站和客服

callStat.setString(6, acco);//账号

callStat.setString(7, accoType);//1代表客户编号 2代表基金账号

callStat.setString(8,tunnelType); //通道类别  0:不分通道 1:普通通道 2:专户通道

callStat.setString(9, callFrom);//调用恒生的接口需传入固定的参数9

callStat.execute();

String result= callStat.getString(2);//获得返回参数 返回代码'0000'表示成功

if(result!=null && "0000".equals(result.trim())){

rs=(ResultSet)callStat.getObject(4);

while(rs.next()){

TaskTemp taskTemp = new TaskTemp();

if("1".equals(rs.getString(3).trim())){ //基金客户是否可订制: 0-不可订制 1-可订制

taskTemp.setTaskcode(rs.getString(1));

taskTemp.setTaskname(rs.getString(2));

taskTemp.setBusinsubtype(rs.getString(15)); //分类编号  需要明天核对

taskTemp.setBusinsubname(rs.getString(16)); //分类名称 需要明天核对

list.add(taskTemp);

}

}

}

} catch (SQLException e) {

e.printStackTrace();

}

return list;

}

存储过程

/*   * 如下接口为外围的封装接口(入参全部为字符串),主要供友商使用,内部不推荐使用   * 功能:查询客户当前可订制的短信模板   * 入参: sInVersion     版本信息   *       sOrderFrom     可订制渠道   *       sAcco          账号   *       sAccotype      账号类型     1-客户编号 2-基金账号 3-交易账号(暂不使用)   *       nTunnelType    通道类型 0:不分通道;default  1:普通通道;  2:专户通道;   *       callFrom       调用来源(恒生系统调用接口不用传参数,佳锐等非恒生系统调用需传入值9)   * 出参: sOutResultCode 返回代码     返回代码'0000'表示成功   *       sOutResultInfo 返回信息     成功则返回'成功',否则返回具体失败原因   */  procedure sp_sms_canorder2(    sInVersion     in  varchar2, --版本信息    sOutResultCode out varchar2,    sOutResultInfo out varchar2,    curOutResult   out refcusor,    sOrderFrom     in  varchar2, --可订制渠道    sAcco          in  varchar2,    sAccotype      in  varchar2,    nTunnelType    in  pls_integer := 0,--0:不分通道;default                                        --1:普通通道;                                        --2:专户通道;    callFrom       in  varchar2    default '5'  );

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值