暂无图片
分享
刘贵宾
2019-07-12
执行存储过程报错ora-12571 ora-02063 ora-06512

执行存储过程报错ora-12571 ora-02063 ora-06512,存储过程如下:

CREATE OR REPLACE PROCEDURE p_wxb_dj_fzchrdxx(v_sssq_q in date,

                                              v_sssq_z in date)


 is


  li_max int;

  li_row int;


begin


  delete from TEMP_FZCHRDXX;

  --commit;

  /* insert into TEMP_FZCHRDXX

  select T1.NSRSBH,

         (select max(a.DJXH) from dw_nsr_zhxx a where a.nsrsbh = t1.nsrsbh) djxh,

         T1.NSRMC,

         T1.JYFW,

         T1.SCJYDZ,

         T1.FZR,

         (select max(a.fddbrsfzjlx_dm)

            from dw_nsr_zhxx a

           where a.nsrsbh = t1.nsrsbh) frzjlx,

         T1.FZRZJHM,

         T1.RDYY,

         T1.ZGSWJG,

         T1.RDRQ,

         seq_whsw.nextval,

         sysdate,

         'I'

    FROM WHGS.GS_FZCDJXX T1;*/


  insert into TEMP_FZCHRDXX

    select b.NSRSBH,

           a.djxh,

           b.NSRMC,

           b.JYFW,

           b.SCJYDZ,

           b.FDDBRXM,

           b.FDDBRSFZJLX_DM,

           b.FDDBRSFZJHM,

           a.rdyy,

           a.rdSWJG_dm,

           a.RDRQ,

           seq_whsw.nextval,

           sysdate,

           'I'

      from hx_dj.DJ_FZCHRDXX@js.wuhan a, sjck_dw.dw_nsr_zhxx@js.wuhan b

     where a.rdswjg_dm like '14201%'

       and a.JCFZCHRQ is null

       and a.djxh = b.djxh

       and a.rdrq >= v_sssq_q

       and a.rdrq <= v_sssq_z;


  commit;

  ----导入网信办数据库


  delete from FZCHRDXX@wxb.wuhan1

   where rdrq >= v_sssq_q

     and rdrq <= v_sssq_z;

  commit;


  select max(to_number(DATA_UP_UUID)) into li_max from TEMP_FZCHRDXX;

  select min(to_number(DATA_UP_UUID)) - 1 into li_row from TEMP_FZCHRDXX;

 

  while li_row < li_max loop

    insert into FZCHRDXX@wxb.wuhan1

      SELECT *

        FROM TEMP_FZCHRDXX        

       where to_number(DATA_UP_UUID) > li_row

         and to_number(DATA_UP_UUID) <= li_row + 1000;

    COMMIT;

    li_row := li_row + 1000;

  end loop;


end p_wxb_dj_fzchrdxx;


收藏
分享
6条回答
默认
最新
文成

检查两边表结构字段长度是否一致

暂无图片 评论
暂无图片 有用 0
文成

同时建议 insert into select 不要使用 * ,最好把字段写全,防止表结构变更导致插入失败

暂无图片 评论
暂无图片 有用 0
刘贵宾

你好,感谢回复。现在是将这个存储过程拆分成4个步骤来执行,只有在最后一个步骤执行失败,步骤如下:

1、清空本地表TEMP_FZCHRDXX的数据;

2、远程通过数据链js.wuhan向本地插入数据到TEMP_FZCHRDXX表

3、清空wxb.wuhan1数据链端的FZCHRDXX表

4、将本地TEMP_FZCHRDXX表的数据向数据链wxb.wuhan1的FZCHRDXX表中插入


只有在执行第4个步骤插入操作时,数据库报错,无法插入,但是只插入一条数据时,能够成功执行,请问这是怎么回事呢?谢谢。

暂无图片 评论
暂无图片 有用 0
文成

你插入的一条数据是满足长度限制的,所以插入成功了

先对比一下两边的表结构吧

看看是否表结构不一致

暂无图片 评论
暂无图片 有用 0
刘贵宾

close一下。十分感谢帮助。最后确认了问题所在。客户的某个字段类型为number,我们目标库对应字段类型为number(20),浮点数和整数的原因导致问题的产生。再次感谢

暂无图片 评论
暂无图片 有用 0
刘贵宾
问题已关闭: 问题已经得到解决
暂无图片 评论
暂无图片 有用 0
回答交流
提交
问题信息
请登录之后查看
邀请回答
暂无人订阅该标签,敬请期待~~
暂无图片墨值悬赏