当前位置: 代码迷 >> DB2 >> 存储过程oracle转DB2解决方案
  详细解决方案

存储过程oracle转DB2解决方案

热度:8864   发布时间:2013-02-26 00:00:00.0
存储过程oracle转DB2
create or replace procedure ProCheck (v_dealdate in number)is
begin
  delete from CstpCheck where checkdate = v_dealdate;

  insert into CstpCheck select * from (
  select * from (
  select GTMS, Type, Id1, 'M' TradeSouce, to_number(to_char(DealDate, 'YYYYMMDD'))  
  from CstpHis where to_number(to_char(DealDate, 'YYYYMMDD')) = v_dealdate and Trademodel = 'M'

  minus

  select GTMS, Type, Id1, 'M' TradeSouce, to_number(to_char(DealDate, 'YYYYMMDD'))  
  from FXHis where to_number(to_char(DealDate, 'YYYYMMDD')) = v_dealdate and Trademodel = 'M'
)

  union

  select * from (
  select GTMS, Type, Id1, 'M' TradeSouce, to_number(to_char(DealDate, 'YYYYMMDD'))  
  from FXHis where to_number(to_char(DealDate, 'YYYYMMDD')) = v_dealdate and Trademodel = 'M'

  minus

  select GTMS, Type, Id1, 'M' TradeSouce, to_number(to_char(DealDate, 'YYYYMMDD'))  
  from CstpHis where to_number(to_char(DealDate, 'YYYYMMDD')) = v_dealdate and Trademodel = 'M'
  )

  );
  insert into OperLog (OperID,OperDate,Content) values
  (Log_seq.nextval, to_date(v_dealdate, 'YYYY-MM-DD'), '成功');
commit;
exception
  when no_data_found then
  rollback;
  insert into OperLog (OperID,OperDate,Content) values
  (Log_seq.nextval, to_date(v_dealdate, 'YYYY-MM-DD'), '失败');
  commit;
  when others then
  rollback;
  insert into OperLog (OperID,OperDate,Content) values
  (Log_seq.nextval, to_date(v_dealdate, 'YYYY-MM-DD'), '失败');
  commit;
end ProCheck;

如题,转成DB2改如何修改

------解决方案--------------------------------------------------------
1.用db2 mtk可以直接转 不过要求oracle存储过程要写的复合工具的要求

2.把oracle存储过程的函数、数据类型等转成db2的,再调试语法;或者了解功能,自己重写

建议还是自己试试,有问题再发
  相关解决方案