2017-09-13 4 views
0

が、私は春のJdbcTemplateと、次のSQLを実行しようとしています動作していない「..から選択...挿入」:春JdbcTemplateは

INSERT INTO japan_wht.PIVOT_20427002(doc_header_text, value_date, total_amt, is_refund)      
(SELECT 
    doc_header_text, DATE(value_date), SUM(LOCAL_CCY_AMT), is_refund 
FROM 
    (SELECT 
     * 
    FROM 
     japan_wht.DATA_20427002 
    WHERE IS_REFUND in ('N') 
    ) t 
GROUP BY DATE(value_date) , doc_header_text, is_refund) 

しかし、それはデータベースのテーブルには何も挿入しないとエラーがスローされません。私はJdbcTemplateとSQL次のコマンドを実行しようとした

、それが動作し、DBテーブルの挿入データ:

jdbcTemplate.update(sqlString); 

はわからないものです:以下

INSERT INTO japan_wht.PIVOT_20427002(id, doc_header_text, value_date, total_amt, is_refund) values('1', '1', '2017-12-31', 3000, 'Y'); 

は、SQL文の上に実行するための私の呼び出しですここで間違っている。

+0

私たちに 'sqlString'を表示できますか? –

+0

どのような例外がありますか?このSELECT INTOを手動で実行できますか? –

+0

@YCF_L:sqlStringは、質問で指定したSQLです。 –

答えて

0

私は無地のJDBCに頼らなければならなかった、それが働いた:

Class.forName("com.mysql.jdbc.Driver"); 
Connection conn = DriverManager.getConnection("jdbc:mysql://localhost/mySchema?autoReconnect=true&useSSL=false&rewriteBatchedStatements=true", 
    "root", "root"); 
Statement stmt = conn.createStatement(); 
int flag = stmt.executeUpdate(sqlString); 
LOGGER.info("Flag = {}", flag); 

春JdbcTemplateは、そのようなものを扱うことができない理由はわかりません!

関連する問題