执行Oracle SQL遇ORA-00911无效字符错误,求解决并获结果
ORA-00911 无效字符错误排查与解决
错误原因定位
根据错误提示ORA-00911: invalid character(行2列1),问题出在SQL语句第2行的起始位置,核心原因是存在不可见的非ASCII字符(如全角空格、特殊制表符),或是违反Oracle标识符规范的字符。
排查与修复方案
- 清理第2行起始字符:手动重新输入第2行开头内容,替换掉可能存在的全角空格、不可见特殊字符,确保使用标准半角空格。
- 验证表名合法性:确认
PROCESS#PS_ITEM_DBF、PROCESS#PS_SCRPT_DBF这类带#的表名确实存在;若表是用双引号创建的大小写敏感标识符,查询时需用双引号包裹表名。 - 规范注释内容:若Oracle环境未配置UTF-8中文支持,暂时将中文注释替换为英文,避免字符解析错误。
- 统一换行格式:确保SQL使用标准LF(Unix)或CRLF(Windows)换行符,避免非标准换行引发解析异常。
修正后的SQL示例
select trim(ps_scrpt.M_NAME) "Processing Script", trim(actset.M_LABEL) "Batch of table feeders", trim(actset.M_FLTTEMP) "Global Filter", trim(actset.M_TAGDATA) "Label of data", trim(scanner_tmpl.M_TEMPLATE) "Scanner Template", trim(bat.M_LABEL) "Table Feeder", trim(feeder_ext.M_OUTPUT) "Reporting Table", trim(feeder_ext.M_MAIN) "M_MAIN", case rep_def.M_TYPE when 0 then 'Dynamic Table Based REP table' when 1 then 'Data Dictionary Based REP table' when 2 then 'SQL Based REP table' else 'Unknown Type' end as "M_TYPE", trim(rep_dyn.M_DYN_TABLE) "Dynamic Table" from ACT_SET_DBF actset, ACT_SETREP_DBF setrep, ACT_BAT_DBF bat, ACT_DYN_DBF feeder_ext, PROCESS#PS_ITEM_DBF ps_item, PROCESS#PS_SCRPT_DBF ps_scrpt, RPO_DMSETUP_TABLE_DBF rep_def, RPO_DMSETUP_DYN_TABLE_DBF rep_dyn, SCANNERCFG_DBF scanner_tmpl where actset.M_REF = setrep.M_REFSET and setrep.M_REFBAT = bat.M_REF and bat.M_REF = feeder_ext.M_REF and scanner_tmpl.M_REFERENCE (+)= actset.M_SCNTMPL and ps_item.M_PARAM_LAB2 (+)= actset.M_LABEL -- Handle unassociated processing script cases and ps_scrpt.M_REF (+)= ps_item.M_REF -- Handle unassociated processing script cases and rep_def.M_LABEL (+)= feeder_ext.M_OUTPUT -- Handle unassociated report table cases and rep_dyn.M_REFERENCE (+)= rep_def.M_REFERENCE -- Handle unassociated dynamic table cases --and feeder_ext.M_OUTPUT like '%REPORTING_TABLE%' -- Report table filter --and rep_dyn.M_DYN_TABLE like '%DYN_TABLE%' -- Dynamic table filter --and bat.M_LABEL like 'TABLE_FEEDER%' -- Table feeder filter and actset.M_LABEL in ( 'E_CS_BF', 'E_DT_BF' )
内容的提问来源于stack exchange,提问作者Bartek Dąbrowski
相关产品推荐
相关产品推荐

