2017-02-26 125 views
0

有3列mydocs(id序列,docform整數,內容文本)的表格在Postgresql中使用副本?

copy (select (content) from mydocs where id=30) to 'D:/html/ex10.xml';

我用這個表達式選擇1行(id = 30),並將它放在帶有路徑的文件夾中(內容文本)。 它的工作原理,但

<?xml version="1.0" encoding="utf-8"?> 
\r\n 
<tutorial> 
\r\n 
<title>&quot;Заметки об XSL&quot;</title> 
\r\n 
<author>лермонтов</author> 
\r\n 
</tutorial> 

在文件夾中的文檔有像\ r和\ n,如何刪除它們時,我複製它,或如何解決\ R的外觀和\ n我在文件中的其他符號。 順便說一下,這是我插入文件到數據庫的方式

create or replace function bytea_import(p_path text, p_result out bytea) 
        language plpgsql as $$ 
declare 
    l_oid oid; 
    r record; 
begin 
    p_result := ''; 
    select lo_import(p_path) into l_oid; 
    for r in (select data 
      from pg_largeobject 
      where loid = l_oid 
      order by pageno) loop 
    p_result = p_result || r.data; 
    end loop; 
    perform lo_unlink(l_oid); 
end;$$; 

這是PSQL

insert into mydocs(docform,content) 
values (3, convert_from(bytea_import('D:/html/ex08.xml'), 'utf-8')); 

回答

0

這不是很清楚(我)完全內容是什麼樣子,但一這些變體應該工作:

copy (select (replace(content, e'\r\n', '')) from mydocs where id=30) to 'c:/data/ex10.xml'; 
copy (select (replace(content, '\r\n', '')) from mydocs where id=30) to 'c:/data/ex10.xml'; 
+0

第一行其實是正確的!謝謝 –