Использовать параметр с табличным значением в инструкции 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
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

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