使用bash脚本变量将PSQL查询作为CSV输出到STDOUT
我试图从bash脚本运行posgresql查询,并将结果作为csv文件返回给STDOUT。我可以使用--csv标志或使用csv头复制到标准输出,而不会出现任何问题。问题来自于我想使用-v标志注入一些变量。这给了我一个错误使用bash脚本变量将PSQL查询作为CSV输出到STDOUT,bash,shell,csv,psql,Bash,Shell,Csv,Psql,我试图从bash脚本运行posgresql查询,并将结果作为csv文件返回给STDOUT。我可以使用--csv标志或使用csv头复制到标准输出,而不会出现任何问题。问题来自于我想使用-v标志注入一些变量。这给了我一个错误 ERROR: syntax error at or near ":" LINE 5: WHERE b.regulator_id = ANY(string_to_array(:ids,' ')::varch... 我正在运行的命令是 psql -U rs
ERROR: syntax error at or near ":"
LINE 5: WHERE b.regulator_id = ANY(string_to_array(:ids,' ')::varch...
我正在运行的命令是
psql -U rs --csv -v ids="$(echo $deleted)" -c "COPY (
SELECT b.regulator_id, b.name
FROM branch b
WHERE b.regulator_id = ANY(string_to_array(:ids,' ')::varchar[])
GROUP BY b.regulator_id ) TO STDOUT" db
将psql查询结果作为csv返回到标准输出的正确方法是什么?为什么需要$(echo$已删除)?你不能只用“$deleted”吗?我以前有过这个,但我只是想改变一下,希望其中一个能起作用。我刚把它放回“$deleted”,但它仍然是同一个错误。删除的变量中到底有什么?它是一个数字列表,例如661060 557986 598185 524077 630420。要指定的字符串