我正在使用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'
不起作用
答案 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
执行该操作。请注意,您可以自定义一堆东西,例如标题,分隔符等。