Re: [SQL] bash & postgres

Поиск
Список
Период
Сортировка
От Erik Jones
Тема Re: [SQL] bash & postgres
Дата
Msg-id 3FD8F5E0-E3E3-49C6-8A14-398CC68035A4@engineyard.com
обсуждение исходный текст
Ответ на bash & postgres  (Greenhorn <user.postgresql@gmail.com>)
Ответы Re: [SQL] bash & postgres  (Tom Lane <tgl@sss.pgh.pa.us>)
Список pgsql-general
On Mar 22, 2009, at 9:03 PM, Greenhorn wrote:

> Hi,
>
> I'm trying to pass variables on a bash script embedded with psql
> commands.
>
> cat header.txt
>
> "to1","from1","subject1"
> "to2","from2","subject2"
> "to3","from3","subject3"
> "to4","from4","subject4"
>
> cat b.sh
>
> #!/bin/bash
> two="2"
>
> psql -h localhost -U postgres -d mobile -c "create temp table header (
>
> field_1   text    not null,
> field_2   text    not null,
> field_3   text    not null
>
> );
>
> \\copy header FROM header.txt CSV
>
> SELECT * FROM header limit "$two"; "
>
>
> When I execute b.sh
> ================================
> ERROR:  syntax error at or near "\"
> LINE 10: \copy header FROM header.txt CSV
>         ^
>
> How do I use \c (or any other psql commands beginning with a "\") in a
> bash script?

For multi-line input to a psql call in a bash (or any decent shell)
script, I'd use a here document:

#!/bin/bash

#!/bin/bash
two="2"

psql -d pagila <<COPYTEST
create temp table header (

field_1   text    not null,
field_2   text    not null,
field_3   text    not null

);

\copy header FROM header.txt CSV

SELECT * FROM header limit $two;
COPYTEST

$ ./tst.sh
Null display is "\N".
Timing is on.
CREATE TABLE
Time: 7.568 ms
Time: 2.374 ms
  field_1 | field_2 | field_3
---------+---------+----------
  to1     | from1   | subject1
  to2     | from2   | subject2
(2 rows)

Time: 1.011 ms

(P.S. Your quotes around $two in your original are not needed, in fact
they're straight up broken as $two is already inside of a double-
quoted string).

Erik Jones, Database Administrator
Engine Yard
Support, Scalability, Reliability
866.518.9273 x 260
Location: US/Pacific
IRC: mage2k






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

Предыдущее
От: Erik Jones
Дата:
Сообщение: Re: pg_restore error - Any Idea?
Следующее
От: Stephen Cook
Дата:
Сообщение: Re: text column constraint, newbie question