Oracle 如何修剪SQL加载器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

我的表格数据包含从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)"
 )
存储表中的数据如下所示:

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,我在问题中提到了示例文件数据,编辑..请调查一下