Java
SQL クエリを自動的に構築して実行するアプリケーションを作成しています。多くのテーブルでは、私のコードは正常に動作しますが、特定のテーブルでは、次の例外がスローされて動かなくなります:
Exception in thread "main" org.postgresql.util.PSQLException: ERROR: column "continent" does not exist
Hint: Perhaps you meant to reference the column "countries.Continent".
Position: 8
実行されたクエリは次のとおりです。
SELECT Continent
FROM network.countries
WHERE Continent IS NOT NULL
AND Continent <> ''
LIMIT 5
5
これは基本的に、列から空でない値を返します。
pgAdmin 4で明らかに「列が存在しません」というエラーが表示される理由がわかりません。Network
テーブルを含む名前のスキーマがcountries
あり、そのテーブルには期待どおりに呼び出された列があることがわかりますContinent
。
すべての列、スキーマ、およびテーブル名はアプリケーション自体によって取得されるため、綴りや意味の誤りはないと思いますが、なぜPostgreSQLが問題を引き起こすのでしょうか? pgAdmin4でクエリを実行することも、提案されたものを使用することも機能していませんcountries.Continent
。
私のPostgreSQLバージョンは現時点で最新です:
$ psql --version
psql (PostgreSQL) 9.6.1
クエリを正常に実行するにはどうすればよいですか?