use*_*521 6 postgresql macos bash psql
我在尝试着:
psql -c "COPY ( SELECT * FROM "Users" LIMIT 10 ) TO STDOUT WITH CSV HEADER" > out.csv
Run Code Online (Sandbox Code Playgroud)
但是,query("Users")中的双引号被删除,psql返回错误Relation users does not exist.我试图逃避这样的报价\"Users\".但他们仍然被删除.我能做什么?
这是正确的答案(对我有用):
echo 'COPY ( SELECT * FROM "Users" LIMIT 10 ) TO STDOUT WITH CSV HEADER' | psql > out.csv
Run Code Online (Sandbox Code Playgroud)
甚至更好(它允许使用单引号和双引号而不进行任何转义):
psql > out.csv <<EOT
COPY
(SELECT id, email, "displayName", "firstName", "lastName", "displayName", 'some str' AS "someStr" FROM "Users" LIMIT 10)
TO STDOUT WITH CSV HEADER;
EOT
Run Code Online (Sandbox Code Playgroud)
psql -c 'COPY ( SELECT * FROM "Users" LIMIT 10 ) TO STDOUT WITH CSV HEADER' > out.csv
Run Code Online (Sandbox Code Playgroud)
在 bash 中,您可以在字符串中使用单引号,前提是您不需要插入任何内容。当然,如果您的查询包含单引号,那将不起作用,但在您的情况下,您应该没问题
| 归档时间: |
|
| 查看次数: |
2626 次 |
| 最近记录: |