Требуется обновить в столбце БД только те столбцы, которые редактируются из внешнего интерфейса.Логика, которую я использую, состоит в том, чтобы отправить 2 массива из кода Java в процедуру БД.
1-й массив: Column_array, который содержит имена столбцов, которые должны быть обновлены.
&
2-й массив: value_array, который содержит значения столбцов, относящиеся к column_array.
От JAVA:
Array value_array = ((OracleConnection) dbConnection).createOracleArray("STRING_ARRAY",
valueList.toArray());
Array param_array = ((OracleConnection) dbConnection).createOracleArray("STRING_ARRAY",
paramList.toArray());
stmt = dbConnection.prepareCall(SqlConstants.UPDATE_SUBSCRIBER_CONFIG_IN_BOLTES);//
stmt.setLong(1, 3628);
stmt.setLong(2, 3629);
stmt.setLong(3, 3632);
stmt.setArray(4, param_array);
stmt.setArray(5, value_array);
int count = stmt.executeUpdate();
СЕЙЧАС на стороне БД:
как я могу выполнить эту итерациюсписок, чтобы обновить и установить это в предложении SET ???
PROCEDURE update_subscriber_config (
p_app_id VARCHAR2,
p_service_id VARCHAR2,
p_pubsub_id VARCHAR2,
column_list string_array,
value_list string_array
)
AS
BEGIN
FOR a IN 1..column_list.count LOOP
update bolt_oracle_pubsub_config set
column_list(a)=value_list(a),
...how to do iteration here???
where APP_ID = p_app_id AND SERVICE_ID = p_service_id AND PUBSUB_ID = p_pubsub_id;
END LOOP;
END update_subscriber_config;
ПОЖАЛУЙСТА, ПОМОГИТЕ.