-1

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

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

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

前任:

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

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

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

不工作

4

1 回答 1

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. 请注意,您可以自定义一堆东西,例如标题、分隔符等。

于 2019-04-22T09:54:09.270 回答