On Wednesday, December 14, 2011 10:12:40 pm Xiaobo Gu wrote:
> Hi,
>
> I know \encoding is a meta command to set client encoding on psql
> prompt, but how can I set it inside the psql command line which will
> be called inside shell scripts,
>
> psql -h 192.168.72.7 -U gpadmin -w -d miner_demo -c"\copy demo.store
> to 'd:\store.csv' with csv header"
>
>
> How can I set the encoding for the export csv file?
http://www.postgresql.org/docs/9.0/interactive/app-psql.html
-c command
--command command
Specifies that psql is to execute one command string, command, and then exit.
This is useful in shell scripts. Start-up files (psqlrc and ~/.psqlrc) are
ignored with this option.
command must be either a command string that is completely parsable by the
server (i.e., it contains no psql-specific features), or a single backslash
command. Thus you cannot mix SQL and psql meta-commands with this option. To
achieve that, you could pipe the string into psql, like this: echo '\x \\ SELECT
* FROM foo;' | psql. (\\ is the separator meta-command.)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
If the command string contains multiple SQL commands, they are processed in
a single transaction, unless there are explicit BEGIN/COMMIT commands included
in the string to divide it into multiple transactions. This is different from the
behavior when the same string is fed to psql's standard input.
>
> Regards,
>
> Xiaobo Gu
--
Adrian Klaver
adrian.klaver@gmail.com