【发布时间】:2019-09-16 19:11:35
【问题描述】:
我已将表和架构从 oracle 迁移到 postgresql。架构名称和表名称都包含双引号。如何使用 psql 命令选择特定模式中的表名,即
psql -U enterprisedb -d test -c "select count(*) from "HISTORY"."EMP";"
我尝试了以下方法:-
psql -U enterprisedb -d test -c "select count(*) from "HISTORY"."EMP";"
psql -U enterprisedb -d test -c "select count(*) from "||HISTORY||"."||EMP||";"
psql -U enterprisedb -d test -c "select count(*) from ""HISTORY"".""EMP"";"
以下是我尝试过的代码:-
psql -U enterprisedb -d test -c "select count(*) from "HISTORY"."EMP";"
psql -U enterprisedb -d test -c "select count(*) from "||HISTORY||"."||EMP||";"
psql -U enterprisedb -d test -c "select count(*) from ""HISTORY"".""EMP"";"
我希望 psql 命令获取数据。当我使用双引号时,它找不到表。如何在 psql 命令中使用双引号。 我可以在登录到选择查询工作的服务器时获取数据。但我想使用 psql 命令来工作和获取详细信息。
【问题讨论】:
-
尝试在引号前加一个反斜杠。
-
使用此处的文档来避免大部分引用/转义的痛苦:stackoverflow.com/questions/11250590/…
-
试过像
psql -U enterprisedb -d test -c "select count(*) from 'HISTORY'.'EMP';"这样的单引号吗? -
顺便说一句:您的表名是否包含引号,或者您是否使用引号来处理(愚蠢的)全大写表名?
标签: postgresql