我有一个JAVA RFC程序,它从SAP表中获取数据并将这些数据插入到SQL表中。每次JAVA程序运行数据都会插入到SQL表中。因此可能会出现重复数据。我的问题是如何从插入中省略那些重复数据。我无法找出正确的查询。我没有使用两个表来比较。我只有一个表和来自SAP端的新数据,我使用循环来插入数据。我不想删除已经存在的数据。
SQL表结构......
ITPITP ITPNAM ITPSCT ITPACTYN
2000348 175/70 R13 CT FG0009 Y
2000355 2ND-175/70 R 13 FG0009 Y
2000364 2ND-185/70 R 14 FG0009 Y
2000365 3RD-185/70 R 14 FG0009 Y
2000370 2ND-185/70 R 14 FG0009 Y
主键是 ITPITP
这是我插入值的方式。
StringBuilder sbQuery = new StringBuilder(
"INSERT INTO ITPMAST(ITPITP,ITPNAM,ITPSCT,ITPACTYN) NOT IN
(SELECT ITPITP FROM ITPMAST) VALUES");
// --- create query ---------------------------------
for (int i = 0; i < table.getNumRows(); i++) {
// table.setRow(i);
sbQuery.append("(?,?,?,?),");
}
sbQuery.deleteCharAt(sbQuery.length() - 1);
sbQuery.append(";");
qex.setUpdateQuery(sbQuery.toString());// *****************
elements.clear();
String strPattern = "^0+(?!$)";
for (int i = 0; i < table.getNumRows(); i++) {
table.setRow(i);
elements.add(table.getString("MATNR").replaceAll(strPattern, ""));
elements.add(table.getString("MAKTX"));
elements.add(table.getString("MATKL"));
elements.add("Y");
}