本帖最后由 lyk02520 于 2010-05-11 13:53:24 编辑

解决方案 »

  1.   

    补充一点:该存储过程中的几个脚本,如果我COPY出来按普通方式执行,所有数据都会正常Insert,但放在存储过程中,"Offtake"的数据就会被忽略.
      

  2.   

    1:加异常捕捉看看是否出现异常
    2:单独调试,先把--Offtake里的语句,SELECT出些数据打印出来,看是否查询到数据
      

  3.   

     1:在你的SQL里加上异常捕捉
    EXCEPTION 
    WHEN OTHERS THEN
    DBMS_OUTPUT.PUTLINE("INSERT ERROR!");
    2:select COUNT(do.division)
    INTO V_CNT  
    from dif_hfs_sales_transaction dst,DI_Quality_CALENDAR_SAM dc,di_product_main dpm,di_org_hub_main do,di_dms_track dd
      where dst.CALENDAR_SEQ=dc.CALENDAR_SEQ
      and dst.PROD_SEQ=dpm.PROD_SEQ
      and dst.ORG_SEQ=do.ORG_SEQ
      and do.dms_id=dd.dmsid
      and (DD.UPDATEMONTH <> dmsUpdateMonth or dd.updatemonth is null)
      and dd.istrack=1
      and do.hub_type in ('HQ','BO')
      and dpm.EXTRACT_DATE>'20030101000000'
      AND TO_DATE(dc.CPOS_TIME_PERD_DATE,'yyyy-mm-dd')>=TO_DATE(begDate,'yyyy-mm-dd')
      AND TO_DATE(dc.CPOS_TIME_PERD_DATE,'yyyy-mm-dd')<=TO_DATE(endDate,'yyyy-mm-dd')
      and do.et is not null
      and do.extract_date=(select max(extract_date) from di_org_hub_main)
      group by do.division,do.et,do.rd_id,do.DMS_ID,dc.cpos_time_perd_date
      order by do.division,do.et,do.rd_id,do.DMS_ID,dc.cpos_time_perd_date;我的意思的,看看是否V_CNT里查到了记录
      

  4.   

    执行时exec di_quality_sc('2010-01-01','2010-01-31')
    确定第四段SQL是否有数据?