Vertica新线CR LF取代

时间:2015-12-22 08:34:21

标签: replace newline vertica

我在vertica中有一个列,我想导出到.csv。 问题是此列中间有CRLF,这意味着导出将每行读取为两行。输入示例(EOF分隔符是从Vertica复制粘贴的):

First part
Second part

我尝试了REPLACE选项,但它没有替换序列。

select TABLE, REPLACE(column_name, '\r\n', 'FUFU') from DB;

该命令会替换随机字母。

因此我开始质疑是否有CRLF(Notepad ++找到它)或者是否隐藏了其他一些我无法替换的角色......

有关新行的其他可能原因的任何帮助(我试过\ n,\ c,\ r和任何可能的组合...)或如何在记事本中直接看到它(直接在Vertica中?)将非常感谢...

或者,我发现无法在Vertica中明确定义导出时的EOF字符 - 这样的事情是否存在? 感谢

2 个答案:

答案 0 :(得分:2)

您可能想要检查如何在Vertica的SQL参考手册中使用扩展字符串文字

示例:

create table a ( id integer , txt varchar(20) ) ;
insert into a values ( 1 , 'abc' ) ;
insert into a values ( 2 , e'def\r\nrghi' ) ;
insert into a values ( 3 , e'ij\r\nklm' ) ;
insert into a values ( 4 , 'poq' ) ; 

然后,用空格替换\ r \ n序列 - 例如 -

SQL=> select id, replace(txt, e'\r\n', ' ' ) from a order by id ;
 id | replace  
----+----------
  1 | abc
  2 | def rghi
  3 | ij klm
  4 | poq
(4 rows)

答案 1 :(得分:0)

 REGEXP_REPLACE(text, '(?>\r\n|\n|\r)', ' ')