2012-12-18 23 views
3

當我嘗試導出字段的文本內容並且該內容具有回車字符時,該字符將以\ N字符串形式輸出。將文本內容導出到文本文件時不帶 n標記

例如:

create table foo (txt text); 
insert into foo (txt) values ('first line 
second line 
... 
and other lines'); 
copy foo (txt) to '/tmp/foo.txt'; 

我想回到下面(一):

first line 
second line 
... 
and other lines 

但是,輸出是(B):

first line\Nsecond line\N...\Nand other lines 

任何人都知道如何得到(a)輸出?

+0

當你四處搜尋你發現了什麼? – JSuar

回答

4

\N來自於一個事實,就是線必須對應一個數據庫行。

對於可以使用多行文本但是引號字符(默認爲")可以包含文本的CSV格式,此規則是放寬的。

如果你想要多行輸出並且沒有圍繞它的字符,你不應該使用COPY而是SELECT

假設一個UNIX shell作爲主叫方的執行環境,你可以這樣做:

psql -A -t -d dbname -c 'select txt from foo' >/tmp/file.txt 
相關問題