1

改行文字を含む文字列列を持つ行を挿入しようとしています。create table ステートメントと 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

ウィンドウで同じことを行うと、以下に示すように、必要に応じて結果セットが得られます

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

エスケープ文字の代わりに改行を使用して、希望どおりの結果を得るにはどうすればよいですか

追加するポイントは、コピーを使用して同じ行を挿入すると、新しい行が適切に保持されることです

4

1 に答える 1

5

以下のように改行を含む文字列の前に E を含めることで修正しました

insert into stringtest values(1,E'Name : NOC\r\n\r\nDetail : Detail');
于 2013-10-31T06:10:51.403 に答える