我试图插入一行包含新行字符的字符串列。下面给出了create table语句和insert查询。

create table stringtest(id int, inputstr character varying(200));

insert into stringtest values(1,'Name : NOC\r\n\r\nDetail : Detail');

插入查询已正确执行。但是,当获取同一行时(当postgres在linux中时),inputstr的值不显示为换行,而是显示为
 id |                     inputstr
----+---------------------------------------------------
  1 | Name : NOC\r\n\r\nDetail : Detail

如果我们在windows中执行同样的操作,则会得到如下所示的结果集
ngnms=# select * from stringtest;
 id |          inputstr
----+----------------------------
  1 | Site Name : NOC\r         +
    | \r                        +
    | Device Detail : agentdname
(1 row)

用新行而不是转义符得到所需的结果应该做些什么
要添加的点是,如果使用copy插入同一行,则新行将被正确保留

最佳答案

我已经把E放在带有换行符的字符串前面,如下所示

insert into stringtest values(1,E'Name : NOC\r\n\r\nDetail : Detail');

关于sql - 在Linux中插入数据时在postgres列中保留新行,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/19698702/

10-16 21:48