【发布时间】:2020-08-18 20:13:05
【问题描述】:
我有一个逗号分隔的 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);
我知道外部表可以识别以逗号结尾的每个字段,但假设在文本文件中我有以下内容
测试.txt
customer_id, customer_name, customer_number
1,a,10
2,b,11
3,c,12
4,Hello, Inc,13
对于 txt 文件中的第 4 行,由于 customer_name 字段中有一个额外的“,”,因此外部表无法正确将客户名称读入表中。有没有办法让我调整外部表,使其忽略额外的“,”或任何特殊字符?
【问题讨论】:
-
DBMS 应该如何猜测哪个逗号是对的,哪个是错的?如果逗号出现在文本中,那么逗号就不是合适的分隔符。选择另一个。