【发布时间】:2016-08-14 09:24:43
【问题描述】:
我的表数据包含从 sql loader ctl 文件加载的换行符,一个名为“IPADDRESS”的列正在加载换行符:
我的 ctl 文件:
load data
INFILE 'abc.txt'
INTO TABLE TABLENAME
APPEND
FIELDS TERMINATED BY '\|'
(MAKE,
CUST_ID "UPPER(:CUST_ID)",
IPADDRESS "REGEXP_REPLACE(:IPADDRESS, '\\.\\D+', '', 1, 0)"
)
表存储的数据为Ex:
Make CUST_ID IPADDRESS
------------------------------
C MPG-VG-ALG01 "9.7.69.37
"
C MPG-VG-ALG03 "9.7.69.39
"
样本输入文件数据:
C|mpg-vg-alg01.gdl.mex.ibm.com|9.7.69.37
C|mpg-vg-alg03.gdl.mex.ibm.com|9.7.69.39
C|mpg-vg-alg04.gdl.mex.ibm.com|9.7.69.23
【问题讨论】:
-
您可以通过替换
CHAR(13)或CHAR(10)来替换换行符或回车例如:REPLACE(REPLACE('column value', CHAR(13),''),CHAR(10) ,'')... 或者你可以在正则表达式中替换它 -
这个逻辑不起作用
-
请给我输入数据的样本
-
C|mpg-vg-alg01.gdl.mex.ibm.com|9.7.69.37 C|mpg-vg-alg03.gdl.mex.ibm.com|9.7.69.39 C|mpg- vg-alg04.gdl.mex.ibm.com|9.7.69.23
-
@Rohan Büchner,我在我的问题中提到了示例文件数据,已编辑..请查看
标签: oracle etl sql-loader ctl