文章目录
环境
系统平台:Linux x86-64 Red Hat Enterprise Linux 7
版本:9.0.4,6.0.4,4.5.10
症状
瀚高数据库中,用户使用大写字母创建了表名,使用pg_dump导出表的过程中报:pg_dump: error: no matching tables were found
highgo@Linux80-A \~\]$ pg_dump -U sysdba -d highgo -t test."TEST" -Fc -f 1.dmp pg_dump: error: no matching tables were found ## 问题原因 pg_dump在处理表名时对双引号有特殊处理,导致表名称的双引号位置发生变化 ## 解决方案 对于大写的表名或模式名,使用单引号去注释下双引号便可解决。 示例一:只有表名大写 \[highgo@Linux80-A \~\]$ pg_dump -U highgo -d highgo -t test.'"TEST"' -Fc -f 1.dmp 示例二:模式名及表名均大写 \[highgo@Linux80-A \~\]$ pg_dump -U sysdba -d highgo -t '"TEST"'.'"TEST"' -Fc -f 1.dmp 或 \[highgo@Linux80-A \~\]$ pg_dump -U sysdba -d highgo -t '"TEST"."TEST"' -Fc -f 1.dmp 示例三: 只有模式名大写 \[highgo@Linux80-A \~\]$ pg_dump -U sysdba -d highgo -t '"TEST"'.test -Fc -f 1.dmp