簡體   English   中英

在 Java Spring Batch 中拋出“無效的列名”,但在 Oracle Sql Developer 中沒有

[英]"Invalid Column Name" thrown In Java Spring Batch, but not in Oracle Sql Developer

使用 Java Spring Batch,我根據發送到 Oracle 數據庫的查詢生成一個文件:

SELECT 
REPLACE(CLIENT.FirstName, chr(13), ' ')
FROM client_table CLIENT;

當我在 Oracle SQL Developer 中運行它時,當我假脫機結果時,這個查詢工作正常,但當我嘗試利用它在 Java Spring 批處理中生成文件時不起作用。 它拋出錯誤:

Message=Encountered an error executing step preparePrimaryIpData in job extract-primary-ip-job
org.springframework.jdbc.BadSqlGrammarException: Attempt to process next row failed; bad SQL grammar [

             SELECT 
             REPLACE(CLIENT.FirstName, chr(13), ' ')
             FROM client_table CLIENT

 ]; nested exception is java.sql.SQLException: Invalid column name
at org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator.doTranslate(SQLErrorCodeSQLExceptionTranslator.java:237)

為什么這在 Oracle Sql Developer 中工作正常,但當我嘗試在 Java Spring Batch 中使用它時卻沒有?

另外,別名是必要的,因為我的實際查詢有很多連接,我只是想將其簡化為示例。

這不是失敗的 sql,而是您在代碼中某處拼錯了列名。

您需要檢查查詢中列的拼寫以及將在何處獲取結果集。 我遇到了同樣的問題,問題在於“rs.getString(“COLUMN_NAME”)”之一的拼寫。

嘗試一些類似的事情:

SELECT REPLACE(CLIENT.FirstName, chr(13), ' ') columnNameX FROM client_table CLIENT

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM