0
我有一個java程序,它可以逐行讀取csv文件,並使用DB2提供的Merge語句在表中執行MERGE。將值合併到Java表
例如,如果我在CSV中有1000行,它將運行1000次executeUpdate。
我的挑戰是,我運行該腳本每隔一小時,以便有一種可能性,即新的條目將進入CSV文件或值將得到更新或行可能會被刪除(有時該行將在今後再來)
我想我做插入如果不存在和更新,如果存在部分正確,但我不知道如何刪除部分插入過去,但不再在最新的csv文件中的行?
另外什麼是這裏避免做1000插入語句的理想情況是否我使用準備好的語句?有人能給我一個例子嗎?
String sql_merge = " MERGE INTO IM4BMX.IEMCOMPUTER_DETAILS AS A USING (VALUES ('"+ComputerID+"', '"+Environment+"')) AS A_TMP (ComputerID , Environment) ON A.ComputerID = A_TMP.ComputerID WHEN MATCHED THEN UPDATE SET ComputerID = '"+ComputerID+"', Environment = '"+Environment+"' WHEN NOT MATCHED THEN INSERT (ComputerID , Environment) VALUES (A_TMP.ComputerID, A_TMP.Environment) ELSE IGNORE ";
stmt.executeUpdate(sql_merge);
如果您的CSV文件是該表中的數據的權威來源,爲什麼你不能簡單地截斷/在CSV文件中的數據加載表的內容? – 2015-03-31 20:56:31
@IanBjorhovde如何使用我的Java程序將csv文件導入db2表? – user3846091 2015-04-01 02:40:40