雖然我試圖批量更新中的Oracle 11g表中的字段與Jooq 3.9.0,和我越來越日期相關的異常:JOOQ批量更新日期
org.jooq.exception.DataAccessException: SQL [null]; error occurred during batching: ORA-01843: not a valid month
我們使用Java 8時間類型(javaTimeTypes = true
)。僞代碼:
List<Query> updates = singletonList(
jooq.update(TABLE).set(TABLE.FIELD, LocalDateTime.now()));
jooq.batch(updates).execute();
該字段在表中有TIMESTAMP(3)類型。 到目前爲止,我已經嘗試做非批量更新,例如:
updates.forEach(Query::execute);
這個工作,但除非絕對必要,我不會犧牲性能。
還試圖在Jooq的配置文件中添加一個類型綁定,它在to_timestamp(<Val>, 「pattern」)
調用中包裝了日期字段,這也起作用,但它似乎很脆弱,已經引發了NLS問題並且看起來很醜。如果想知道爲什麼批處理更新的行爲與普通更新相比有所不同,那將會很好。
你能看到工作在日誌中生成的SQL? (請注意,我也爲此打開了一個問題:https://github.com/jOOQ/jOOQ/issues/5910) –