You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Oracle 21中调用ExcelTable.getRows触发ORA-00600[12442]错误求助

问题描述

尝试使用ExcelTable包处理CSV文件,执行SQL语句如下:

select * 
from table(
       ExcelTable.getRows(
         p_file => ExcelTable.getTextFile('WORK_XLS','test_8k.csv')
       , p_cols => q'{
                     "C1"  number
                   , "C2"  varchar2(50)
                   , "C3"  varchar2(50)
                   , "C4"  number
                   , "C5"  date format 'DD/MM/YYYY HH24:MI:SS'
                   , "C6"  date format 'DD/MM/YYYY HH24:MI:SS'
                   , "C7"  timestamp(6) format 'DD-MON-YYYY HH.MI.SS.FF9 AM'
                   , "C8"  varchar2(10)
                   , "C9"  varchar2(10)
                   , "C10" varchar2(1000) 
                   }'
       , p_skip => 0
       , p_line_term => chr(13)||chr(10)
       , p_field_sep => ';'
       , p_text_qual => '"'
       )
     )
;

即使使用示例CSV文件,仍触发Oracle内部错误:

ORA-00600: internal error code, arguments: [12442], [], [], [], [], [], [], [], [], [], [], []
00600. 00000 - "internal error code, arguments: [%s], [%s], [%s], [%s], [%s], [%s], [%s], [%s], [%s], [%s], [%s], [%s]"
*Cause: This is the generic internal error number for Oracle program
exceptions. It indicates that a process has encountered a low-level,
unexpected condition. The first argument is the internal message
number. This argument and the database version number are critical in
identifying the root cause and the potential impact to your system.

使用xutl_flatfile.get_fields_delimited处理同一文件可正常运行,数据库版本为Oracle 21c。

解决思路
  • 验证包版本兼容性:确认ExcelTable包是否适配Oracle 21c,旧版本自定义PL/SQL包可能未兼容新版本Oracle内部机制,尝试更新至最新版本。
  • 简化SQL定位问题点:
    • 减少字段数量测试,比如仅保留2-3个基础字段执行,排查是否由特定字段类型(如带格式的timestamp)触发异常。
    • 移除字段格式字符串,比如将C7的timestamp格式配置暂时删除,改用默认解析规则,验证是否为格式解析逻辑引发内部错误。
  • 调整参数配置:
    • 修改换行符参数p_line_term,尝试单独使用chr(10)(LF)替代chr(13)||chr(10)(CRLF),部分环境下换行符识别差异可能引发异常。
    • 核对p_text_qual与CSV文件中引号的一致性,确认文件中不存在未闭合的引号导致解析逻辑出错。
  • 排查Oracle官方Bug与补丁:ORA-00600 [12442]属于内部错误,可查询Oracle官方支持文档,确认21c是否存在相关已知Bug,是否需要安装对应补丁修复。
  • 临时替代方案:鉴于xutl_flatfile.get_fields_delimited可正常运行,可临时用该函数替代ExcelTable的解析逻辑,保障业务流程正常推进,同时持续跟进ExcelTable的问题排查。

内容的提问来源于stack exchange,提问作者Altiy Zemlytskiy

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.20 20:55:15