Re: inserting/updating a field with the contents of a text file - Mailing list pgsql-novice

From George Pavlov
Subject Re: inserting/updating a field with the contents of a text file
Date
Msg-id 8C5B026B51B6854CBE88121DBF097A86012C0F0D@ehost010-33.exch010.intermedia.net
Whole thread Raw
In response to inserting/updating a field with the contents of a text file  ("Lonni J Friedman" <netllama@gmail.com>)
Responses Re: inserting/updating a field with the contents of a text file
List 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 by date:

Previous
From: "Lonni J Friedman"
Date:
Subject: inserting/updating a field with the contents of a text file
Next
From: "Lonni J Friedman"
Date:
Subject: Re: inserting/updating a field with the contents of a text file