首頁 >資料庫 >mysql教程 >為什麼我的 Java JDBC 程式碼在 PostgreSQL 中收到「列不存在」錯誤,即使該列存在?

為什麼我的 Java JDBC 程式碼在 PostgreSQL 中收到「列不存在」錯誤,即使該列存在?

Susan Sarandon
Susan Sarandon原創
2025-01-20 20:04:11409瀏覽

Why Does My Java JDBC Code Get a

排除 Java JDBC 中 PostgreSQL 的「列不存在」錯誤

問題:

使用 JDBC 與 PostgreSQL 互動的 Java 應用程式可能會拋出「列不存在」異常,即使該列明確存在於資料庫中也是如此。儘管 SQL 查詢中的表名和列名準確,但這種情況經常發生。

根本原因:

PostgreSQL 區分大小寫。 預設情況下,JDBC 在發送查詢之前將列名轉換為小寫。 如果您的列名稱包含大寫字母,此轉換會導致不符和錯誤。

解:

解決方案很簡單:在 SQL 查詢中將列名用雙引號引起來。這可以防止 JDBC 自動小寫轉換,確保資料庫接收到正確的大小寫。

範例:

假設您正在查詢 countries 架構中的 network 表,嘗試檢索 Continent 欄位。 有問題的查詢將是:

<code class="language-sql">SELECT Continent
FROM network.countries
...</code>

使用雙引號的更正查詢是:

<code class="language-sql">SELECT "Continent"
FROM network.countries
...</code>

此修改確保「大陸」完全按照資料庫中的定義傳遞到 PostgreSQL,解決了「列不存在」錯誤。

最佳實務:

透過 JDBC 與 PostgreSQL 互動時,請務必在 SQL 查詢中的欄位名稱周圍使用雙引號,以避免區分大小寫問題。這個簡單的預防措施可以防止許多潛在的頭痛。

以上是為什麼我的 Java JDBC 程式碼在 PostgreSQL 中收到「列不存在」錯誤,即使該列存在?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn