Я пытаюсь выполнить хранимую процедуру MS-SQL с Java.MS SQL и Java: не удается найти переменную таблицы во время хранимой процедуры вызова
Одним из параметров процедуры является переменная таблицы (в этом случае она называется [Items]). Процедура и переменная таблицы, определенные в отдельной схеме (в этом случае [тест]).
При вызове процедуры возникает следующая ошибка: «com.microsoft.sqlserver.jdbc.SQLServerException: столбец, параметр или переменная @ P1.: Не удается найти элементы данных.».
Я использовал Спринг SimpleJdbcCall и драйвер JDBC Microsoft, - sqljdbc-6.0 для работы с MS-SQL:
SimpleJdbcCall testCall = new SimpleJdbcCall(jdbcTemplate)
.withSchemaName("[test]")
.withProcedureName("[SomeTestProcedure]")
.withoutProcedureColumnMetaDataAccess()
.declareParameters(
new SqlParameter("Id", Types.INTEGER),
new SqlParameter("Items", microsoft.sql.Types.STRUCTURED));
testCall.compile();
SQLServerDataTable sdt;
try {
sdt = new SQLServerDataTable();
sdt.addColumnMetadata("Name", Types.NVARCHAR);
sdt.addColumnMetadata("Value", Types.INTEGER);
sdt.addRow("DEV", 1);
sdt.addRow("PROD", 2);
} catch (SQLServerException e) {
throw new IllegalStateException(e);
}
testCall.execute(1, sdt);
Я был бы признателен за помощь в решении этой проблемы. Благодарю.