Re: inserting/updating a field with the contents of a text file

Поиск
Список
Период
Сортировка
От George Pavlov
Тема Re: inserting/updating a field with the contents of a text file
Дата
Msg-id 8C5B026B51B6854CBE88121DBF097A86012C0F0D@ehost010-33.exch010.intermedia.net
обсуждение исходный текст
Ответ на inserting/updating a field with the contents of a text file  ("Lonni J Friedman" <netllama@gmail.com>)
Ответы Re: inserting/updating a field with the contents of a text file  ("Lonni J Friedman" <netllama@gmail.com>)
Список pgsql-novice
> psql -q -d database0 -h server -c "UPDATE table set info='`cat
> /tmp/file.txt`' where id=3;"
>
> and this almost works.  The problem is that whenever there are
> carriage returns in file.txt, the rest of the file contents never get
> inserted (i only get the first line).

Not sure what's inside your file, but the CRs are not your problem. What
you do have to be concerned about escaping are any single quotes. You
can do that with whatever your favorite search and replace utility is
(e.g. ...-c"insert into table (info) values('`sed "s/'/''/g"
file.txt`')" )

Just so you know I am not making it up on the CRs here's an example:

% echo "abc
dquote> def
dquote> ghi" > x.txt
% cat x.txt
abc
def
ghi
% psql -dfoo -c"create table test (a text)"
CREATE TABLE
% psql -dfoo -c"insert into test values('`cat x.txt`')"
INSERT 0 1
% psql -dfoo -c"select * from test"
  a
-----
 abc
def
ghi
(1 row)
% unix2dos x.txt
unix2dos: converting file x.txt to DOS format ...
% psql -dfoo -c"insert into test values('`cat x.txt`')"
INSERT 0 1
% psql -dfoo -c"select * from test"
  a
-----
 abc
def
ghi
 abc
def
ghi
(2 rows)



В списке pgsql-novice по дате отправления:

Предыдущее
От: "Lonni J Friedman"
Дата:
Сообщение: inserting/updating a field with the contents of a text file
Следующее
От: "Lonni J Friedman"
Дата:
Сообщение: Re: inserting/updating a field with the contents of a text file