Sql 在linux中插入数据时保留postgres列中的新行

Sql 在linux中插入数据时保留postgres列中的新行,sql,postgresql,Sql,Postgresql,我正在尝试插入一行,其中的字符串列包含新行字符。下面给出了CREATETABLE语句和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的值不会与新行一起显示,

我正在尝试插入一行,其中的字符串列包含新行字符。下面给出了CREATETABLE语句和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');

我已经修复了它,包括E之前的字符串与线饲料如下

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

可能会有帮助。我已经修复了这个问题,在字符串前面加上了E,换行符如下,插入到stringtest值中(1,E'Name:NOC\r\n\r\n详细信息:Detail');可能会有帮助。我已经修复了这个问题,在字符串前面加上了E,换行符如下,插入到stringtest值中(1,E'Name:NOC\r\n\r\n详细信息:Detail');