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
|
Список | 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 по дате отправления: