外部表帮助-字段以','结尾的问题,如果字段中的值中存在其他逗号

问题描述

我有一个用逗号分隔的txt文件,我正在使用一个外部表将数据加载到下面:

create table test_ext_table
     CUSTOMER_ID NUMBER,CUSTOMER_NAME       VARCHAR2(255),CUSTOMER_NUMBER     NUMBER)  
     ORGANIZATION EXTERNAL 
    ( type oracle_loader 
      default directory TXT_DIR 
      access parameters 
      (RECORDS delimited by newline SKIP 1 
      FIELDS TERMINATED BY ','
       LRTRIM 
       MISSING FIELD VALUES ARE NULL 
      ) 
      LOCATION (TEST.txt)
      )
      REJECT LIMIT UNLIMITED);

我知道外部表可以识别以逗号结尾的每个字段,但是假设在文本文件中我有以下内容

TEST.txt

customer_id,customer_name,customer_number
1,a,10
2,b,11
3,c,12
4,Hello,Inc,13

对于txt文件中的第4行,由于customer_name字段中有一个附加的“,”,因此外部表无法正确将客户名读入表中。我有什么办法可以调整外部表,使其忽略其他“或”或任何特殊字符?

解决方法

据我所知,有两种方法可以做到:

  • 可选地将字符串括入例如双引号
  • 将分隔符从逗号更改为其他内容,例如分号

否则,无法将其“保持原样”并使Oracle识别哪个逗号代表什么。

相关问答

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