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@xxxxxxxxx -- Sent via pgsql-general mailing list (pgsql-general@xxxxxxxxxxxxxx) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-general