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