Oracle 如何修剪SQL加载器ctl文件中列数据的新行字符
我的表格数据包含从sql loader ctl文件加载的新行字符,一个名为“IPADDRESS”的列正在加载新行字符: 我的ctl文件:Oracle 如何修剪SQL加载器ctl文件中列数据的新行字符,oracle,etl,sql-loader,ctl,Oracle,Etl,Sql Loader,Ctl,我的表格数据包含从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
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)"
)
存储表中的数据如下所示:
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
我的问题的答案是:
column_name“替换(:column_name,CHR(13),”)代码>是的,一个选项是使用REPLACE()
函数,但需要添加更多
- 为任何数据类型的字符串添加
CHAR(数据长度)
,即使其类型为VARCHAR2
- 添加CHR(10)(换行)以及CHR(13)(回车)
- 不要忘记添加嵌套在
REPLACE()
中的TRIM()
函数,以防止额外的
问题也一样
- 使用第三个参数是多余的
比如
column|u name CHAR(4000)“替换(TRIM(:'| | column|u name |')、CHR(13)| | CHR(10))”
而且
column|u name CHAR(4000)“翻译(TRIM(:'| | column|u name |')、CHR(13)| | CHR(10),””
可以用作替代。您可以通过替换CHAR(13)
或CHAR(10)
来替换新行或回车符,例如:替换(替换('column value',CHAR(13),“”),CHAR(10),“”)。。。或者你可以在regext中替换它。这个逻辑不起作用。请给我一个输入数据的样本。请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@RohanBüchner,我在问题中提到了示例文件数据,编辑..请调查一下