排除 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中文網其他相關文章!