簡體   English   中英

SQL異常列無效,java sql語句

[英]SQL exception column invalid, java sql statement

在ORACLE數據庫上使用JAVA執行以下SQL語句時遇到問題,它可與DBeaver / SQLdeveloper一起使用,但是在Java進程中出現以下錯誤。 有任何想法嗎 ?

SQL語句:

SELECT MIN(SUBSTR(t1.MONTH,1,4)) || 'A' || 'B' || 'CDE FGR' || ' ' || 'AT'
FROM table1 t1, table2 t2
WHERE t1.toto=t2.toto
AND t1.tata=t2.tata
AND t1.titi=t2.titi
AND t2.tutu = 'IMPACT_EUROPE_FLAG'

Java進程中的SQL錯誤:

org.springframework.jdbc.BadSqlGrammarException: Attempt to process next row failed; bad SQL grammar

nested exception is java.sql.SQLException: Invalid column name

桌子:

TABLE1  TABLE2 
--------------
MONTH   TOTO
TOTO    TATA
TATA    TITI
TITI    TUTU
TUTU

我的Java進程,只有閱讀器和stepbuilder:

 private Step insertBaseToFile() {
        return stepBuilderFactory.get("insertBaseToFile").<GenericRecord, GenericRecord>chunk(100).reader(baseReader())
                .writer(fileWriter()).build();
 }

private JdbcCursorItemReader<GenericRecord> baseReader() {

        JdbcCursorItemReader<GenericRecord> databaseReader = new JdbcCursorItemReader<>();

        String sql = null;

        sql = " SELECT MIN(SUBSTR(t1.MONTH,1,4)) || 'A' || 'B' || 'CDE FGR' || ' ' || 'AT' " +
                    "FROM table1 t1, table2 t2 " +
                    "WHERE t1.toto=t2.toto " +
                    "AND t1.tata=t2.tata " +
                    "AND t1.titi=t2.titi " +
                    "AND t2.tutu = 'IMPACT_EUROPE_FLAG'" 

        databaseReader.setDataSource(dataSource); //dataSource object from my class using JSON conf to get logs in to DB
        databaseReader.setSql(sql);

        return databaseReader;
}

我的猜測是,發生這種情況是因為結果中的列名稱將是: MIN(SUBSTR(T1.MONTH,1,4))||'A'||'B'||'CDEFGR'||''||'AT'

嘗試:

SELECT MIN( ... ) AS mycolumn

我的錯。 一切正常,這是我使用錯誤的變量名稱引起的錯誤。

暫無
暫無

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

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