PostgreSQL“列不存在”,但它确实存在

我正在编写一个Java应用程序来自动构建和运行SQL查询。对于许多表,我的代码可以正常工作,但对于某个表,它会抛出以下异常:

线程“main”org.postgresql.util.PSQLException中的异常:错误:列“Continental”不存在
提示:也许你是指“国家.大陆”一栏。
职位:8

已运行的查询如下所示:

选择大陆
来自网络国家
大陆不是空的
和大陆&lt>''
限制5

这实际上是从列中返回5非空值

我不明白为什么在pgAdmin 4中出现“列不存在”错误。我可以看到有一个名为Network的模式,其中包含表countries,该表有一个名为contraction的列,正如预期的那样

既然所有的列、模式和表名都是由应用程序本身检索的,我不认为存在拼写或语义错误,那么为什么PostgreSQL会导致问题呢?在pgAdmin4中运行查询,也不使用建议的国家/地区。Continume正在运行

我的PostgreSQL版本是目前最新的:

$psql--版本
psql(PostgreSQL)9.6.1

如何成功运行查询

请尝试将其用双引号引起来,如查询中的“大陆”:

选择“大陆”
来自网络国家
...

发表评论