2013-10-31 40 views
1

我试图插入一行包含新行字符的字符串列。下面给出create table语句和insert查询。在linux中插入数据时在postgres列中保留新行

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

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

插入查询得到正确执行。然而,当同一行被取出时(Postgres的是在linux),不与新的生产线,而不是它显示为

id |      inputstr 
----+--------------------------------------------------- 
    1 | Name : NOC\r\n\r\nDetail : Detail 

而如果我们做同样的窗口,我们得到显示inputstr的价值根据需要下面

ngnms=# select * from stringtest; 
id |   inputstr 
----+---------------------------- 
    1 | Site Name : NOC\r   + 
    | \r      + 
    | Device Detail : agentdname 
(1 row) 

应当做什么与新的生产线,而不是转义字符

点添加是,如果在同一行使用拷贝插入希望得到的结果所提供的结果集,新行保存正确

+0

[本](http://stackoverflow.com/questions/7377382/how-to-enter-new-line之前E固定它-using-sql-command-insert)可能会有所帮助。 – devnull

+0

我已经通过在带有换行的字符串之前包含E来修复它,如下所示插入到stringtest值(1,E':NOC \ r \ n \ r \ nDetail:Detail'); – Balachandar

回答

5

我已通过包括具有换行字符串,如下

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