外部表内部错误:[kpxsFetch:错误的魔术数]

问题描述

我们正在尝试在CSV之上创建Oracle外部表,并且Merge语句用于执行Upsert操作,以将数据从外部表复制到主表。 当我们尝试多次执行同一Merge语句时,出现奇怪的错误(错误的魔术数)。

请注意,当只有插入且仅针对更新(在merge语句中存在)发生问题时,上述merge语句才起作用。如果数据已损坏,则第一次运行本身应该有错误。这只是在我们尝试多次更新/合并的情况下发生。

请告知我们所缺少的内容。

错误 Error report - ORA-29913: error in executing ODCIEXTTABLEFETCH callout ORA-29401: data cartridge internal error [External Table Internal Error: [kpxsFetch:**Bad Magic Numbe**r] ]

合并声明

merge /*+ parallel(4) */ into MAIN_TABLE scpo using (select distinct xt.ACTIONCODE,xt.ITEM,xt.LOC,xt.MINSHELFLIFEDUR,xt.MINSHIPSHELFLIFEDUR,xt.SHELFLIFEDUR from EXTERNAL_TABLE xt left join MAIN_TABLE scpo on xt.ITEM = scpo.ITEM AND xt.LOC = scpo.LOC where xt.ACTIONCODE in ('ADD','CHANGE_BY_REFRESH')) ext on (ext.ITEM = scpo.ITEM AND ext.LOC = scpo.LOC and ext.ACTIONCODE in ('ADD','CHANGE_BY_REFRESH') ) when matched then update set scpo.MINSHELFLIFEDUR = ext.MINSHELFLIFEDUR,scpo.MINSHIPSHELFLIFEDUR = ext.MINSHIPSHELFLIFEDUR,scpo.SHELFLIFEDUR = ext.SHELFLIFEDUR when not matched then insert (ITEM,LOC,MINSHELFLIFEDUR,MINSHIPSHELFLIFEDUR,SHELFLIFEDUR) values (ext.ITEM,ext.LOC,ext.MINSHELFLIFEDUR,ext.MINSHIPSHELFLIFEDUR,ext.SHELFLIFEDUR) LOG ERRORS INTO ERR_MAIN_TABLE('MERGE-3369949')

外部表脚本:

CREATE TABLE EXTERNAL_TABLE 
  (    "ACTIONCODE" VARCHAR2(50 CHAR),"ITEM" VARCHAR2(50 CHAR),"LOC" VARCHAR2(50 CHAR),"MINSHELFLIFEDUR" NUMBER(38,0),"MINSHIPSHELFLIFEDUR" NUMBER(38,"SHELFLIFEDUR" NUMBER(38,0)
  ) 
  ORGANIZATION EXTERNAL 
   ( TYPE ORACLE_LOADER
     DEFAULT DIRECTORY "LANG_EXTERNAL"
     ACCESS PARAMETERS
     ( RECORDS DELIMITED BY "\n\r"  SKIP 1 FIELDS TERMINATED BY "," MISSING FIELD VALUES ARE NULL (ACTIONCODE,ITEM,SHELFLIFEDUR)    )
     LOCATION
      ( 'externaltable.csv'
      )
   )
  REJECT LIMIT UNLIMITED 
 PARALLEL 4 ;



解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...