mybatis调用存储过程

记两一下工作中用到的mybatis调用存储过程,这边用到的mybatis是3.2.2版本,oracle 10g。

一、返回一个值的存储过程,如下:

CREATE OR REPLACE PROCEDURE "SP_MF_I_IMP"
          ( I_MANIFEST_I_ID    IN NUMBER ,
            I_FUNCTION_CODE  IN VARCHAR2,
            I_FIRM_ID        IN NUMBER,
            I_OP_USER        IN VARCHAR2, --操作人ID
            O_RETURN_MESSAGE OUT VARCHAR2  ) AS

          --根据SEQ生成的报文头表的ID
          V_HEAD_INFO_ID NUMBER(11);
          --报文编号中,年月日时生成
          V_YYMMDDHHMM VARCHAR2(10);
          --报文编号
          V_MESSAGE_ID VARCHAR2(50);
          --申报人
          V_SEND_ID VARCHAR2(50);
          --货物运输批次号
          V_TRAN_NO VARCHAR2(13);
          --提运单号
          V_BILL_NO VARCHAR2(35);
          --异常报文
          STR_L_ERRMSG VARCHAR2(3000);
          --新增,修改,删除类型
          V_FUNTYPE VARCHAR2(5);
          --是否已经申报的标识
          V_DECLARE VARCHAR(5);
          
          BEGIN 
          
            --当要申报的单的状态为‘001’新单,‘008’发送海关失败时才需要发送
            IF V_DECLARE = '001' OR V_DECLARE = '008' THEN
                --获得SEQ_EDI_HEAD_INFO的值
                SELECT EDI.SEQ_EDI_HEAD_INFO.NEXTVAL INTO V_HEAD_INFO_ID FROM DUAL;
                --组装生成报文编号中的'YYMMDDHHMM'
                SELECT TO_CHAR(SYSDATE,'YYMMDDHH24MI') INTO V_YYMMDDHHMM FROM DUAL;
                --生成报文编号
                V_MESSAGE_ID := '78921227X'|| V_YYMMDDHHMM || I_MANIFEST_I_ID;

                --通过GET_SEND_ID函数获取SENDID
                V_SEND_ID := GET_SEND_ID(I_FIRM_ID);

                --新增报文头表信息
                INSERT INTO EDI.EDI_MANIFEST_I_HEAD_INFO
                  (ID,M
  • 0
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值