【发布时间】:2020-07-09 09:20:12
【问题描述】:
我有这个练习: 有这种类型的文本文件
10012020/07/057
10022020/07/055
10032020/07/100
10042020/07/079
10052020/07/103
10062020/07/098
10072020/07/104
10082020/07/101
10092020/07/104
10102020/07/063
使用字符数作为分隔符将记录插入外部表(如下表)。
CREATE TABLE Ftest (
idF VARCHAR(255),
dt DATE,
n VARCHAR(255)
)
ORGANIZATION EXTERNAL
(
TYPE oracle_loader
DEFAULT DIRECTORY desktop
ACCESS PARAMETERS
(
RECORDS DELIMITED BY '\n'
BADFILE CHARACTER
DISCARDFILE CHARACTER
LOGFILE CHARACTER
FIELDS TERMINATED BY ','
OPTIONALLY ENCLOSED BY "'"
MISSING FIELD VALUES ARE NULL
(
idF CHAR(255),
dt CHAR(255) date_format DATE mask 'YYYY/MM/DD',
numero CHAR(255)
)
)
LOCATION ('Test.csv')
)
REJECT LIMIT UNLIMITED;
采取第一条记录,我有: 10012020/07/057 所以
- 字段 1 (idF) = 1001 [4 个字符]
- 字段 2 (dt)= 2020/07/05 [10 个字符]
- 字段 3 (n)= 7 [1 个字符]
我不知道使用什么 sql 命令来指定每个字段的分隔符。你有什么建议吗?或者在插入表之前修改文件,但始终使用sql语言的解决方案?
【问题讨论】:
-
您使用的是 Oracle 还是 SQL Server? (请去掉多余的标签)。
标签: oracle sql-loader external-tables