Я не уверен, что это хороший ответ, так как мне трудно понять, о чем вы просите, но я лично переложил бы нагрузку на обработку на СУРБД. Поэтому вместо этого вы должны алгоритмически создать один оператор выбора, который будет возвращать только соответствующие значения.
Это можно сделать с помощью оператора NOT IN
sql.
Итак, начните со своей строки, как обычно ...
String statement = "SELECT * FROM OracleDB where StudentID NOT IN (";
foreach (val in StudentIDValuesFromYourDB)
{
statement = statement.concat(val + ", ");
}
statement = statement.substring(0,statement.length()-2);//remove the extra comma
statement = statement.concat(")");
По общему признанию, это оператор ОГРОМНЫЙ , и я не уверен, позволено ли ему быть настолько большим (и я не уверен в синтаксисе в Oracle, я ненавижу адаптировать свою работу для клиентов Oracle), но я думаю, что СУБД была бы лучше оптимизирована для выполнения всей этой работы по сортировке за вас. Если вы сможете выполнить этот оператор, вы получите только те значения, которые находятся в OracleDB, а НЕ в вашей собственной БД.
Теперь вы можете использовать этот список для генерации только соответствующих операторов вставки.