如何用包含相同选择语句的文件名替换(选择current_timestamp)?

时间:2019-04-18 14:16:53

标签: postgresql unix psql postgresql-copy

我正在使用PSQL。我的命令行是:

$\copy (select current_timestamp) to '/home/myname/outputfile.txt'

我想知道,如何用包含相同选择语句的文件名替换“(select current_Timestamp)”?

例如:

$\copy (My_SQL_FILE.sql) to '/home/myname/outputfile.txt'

我尝试了谷歌搜索,但似乎找不到答案。

$\copy (my_Sql_file.sql) to '/home/myname/outputfile.txt'

不起作用

1 个答案:

答案 0 :(得分:0)

您要运行\copy语句中存储在文件中的查询,即执行该查询并将输出存储在文件中?那是可行的。

我自己遇到了这个用例,并写了psql2csv。它使用与psql相同的参数,并另外使用一个查询作为参数(或通过STDIN)并将输出打印到STDOUT。

因此,您可以按以下方式使用它:

$ psql2csv [CONNECTION_OPTIONS] < My_SQL_FILE.sql > /home/myname/outputfile.txt

psql2csv的基本作用是将查询转换为

COPY ($YOUR_QUERY) TO STDOUT WITH (FORMAT csv, ENCODING 'UTF8', HEADER true)

,然后通过psql执行该操作。请注意,您可以自定义一堆东西,例如标题,分隔符等。