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

Oracle外部表导入单列CSV时去除双引号的方案咨询

Oracle外部表导入单列CSV去除双引号解决方案

问题分析

你的CSV为单列无分隔符结构,原外部表配置中多余的TERMINATED BY ','导致Oracle无法正确识别字段边界,加上换行符解析可能存在的问题,最终导致导入的数据被错误包裹双引号且包含换行符。

解决方案

方案1:调整外部表核心配置(推荐)

移除多余的分隔符配置,明确字段定义,从根源解决解析异常:

CREATE TABLE XXINT_IRS_EXT(
   "INVOICE_NUM" VARCHAR2 (100 BYTE)
)
ORGANIZATION EXTERNAL (TYPE oracle_loader
   DEFAULT DIRECTORY "OEB_INBOUND_DIR" 
   ACCESS PARAMETERS (
       RECORDS DELIMITED BY NEWLINE
           BADFILE 'IRS14.bad'
           LOGFILE 'IRS14.log'
           SKIP 1
       FIELDS           
       -- 移除多余的TERMINATED BY ',',单列无需逗号分隔
       OPTIONALLY ENCLOSED BY '"' 
       TRAILING NULLCOLS
       (
           INVOICE_NUM VARCHAR2(100)
       )
   LOCATION ("INBOUND_DIR" : 'IRS14.csv')
) REJECT LIMIT UNLIMITED;

若确认CSV数据中完全不存在双引号,可直接删除OPTIONALLY ENCLOSED BY '"',进一步简化解析逻辑。

方案2:适配Windows格式CSV的换行符

如果你的CSV是Windows生成的(换行符为\r\n),修改记录分隔符配置以避免读取多余的回车符:

RECORDS DELIMITED BY '\r\n'

方案3:查询时临时修正数据(应急用)

若无法修改外部表,可通过字符串函数在查询时去除双引号和多余换行:

SELECT TRIM(BOTH '"' FROM REPLACE(INVOICE_NUM, CHR(10), '')) AS INVOICE_NUM
FROM XXINT_IRS_EXT;

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.18 11:12:56