Использовать параметр с табличным значением в инструкции Merge sqlJAVA

Программисты JAVA общаются здесь
Anonymous
Использовать параметр с табличным значением в инструкции Merge sql

Сообщение Anonymous »

Я пытаюсь использовать команду MERGE сервера sql. Однако я не уверен, как передать его в качестве параметра с помощью Java.
Я настраиваю SqlParamSource как

Код: Выделить всё

private SqlParameterSource getSqlParamsForPollingLogUpdateWithMerge(int[] ids){
final MapSqlParameterSource params = new MapSqlParameterSource();
try{
SQLServerDataTable table = new SQLServerDataTable();
table.addColumnMetadata("id",java.sql.Types.INTEGER);
table.setTvpName("dbo.idtable");
for (int id : ids) {
table.addRow(id);
}

params.addValue("idtable", table);
return params;
}catch (Exception ex){
throw new RuntimeException(ex);
}

}

Мой sql выглядит так:

Код: Выделить всё

String sql= "create type dbo.idtable AS TABLE (id INT);" +
"MERGE INTO table1 AS tgt" +
"USING :idtable as src\n" +
"ON tgt.id=src.id" +
"WHEN MATCHED THEN" +
"UPDATE SET ..." +
"WHEN NOT MATCHED THEN" +
"INSERT ;";
Проблема, с которой я столкнулся, заключается в том, что тип данных «dbo.idtable» не решается. Я не знаю, как действовать дальше.

Подробнее здесь: https://stackoverflow.com/questions/790 ... -statement

Вернуться в «JAVA»