将表值参数与存储过程一起使用

时间:2016-10-17 13:33:13

标签: java stored-procedures jdbc mssql-jdbc

我尝试将功能应用到我现有的其他客户端,允许您发送"位置ID列表"以逗号分隔的值。我的想法是将id传递给表值参数(TVP),但我无法弄清楚如何实现它。我正在使用

new SimpleJdbcCall(getDataSource())
            .withoutProcedureColumnMetaDataAccess().withProcedureName(procedureName)
            .declareParameters(new SqlParameter(PARAMETER_COMPANY_ID, Types.VARCHAR))
            .declareParameters(new SqlParameter(PARAMETER_MIN_YEAR, Types.INTEGER))
            .declareParameters(new SqlParameter(PARAMETER_MIN_WEEK, Types.INTEGER))
            .declareParameters(new SqlParameter(PARAMETER_LOCATION_ID, ???));

我不知道要解析到最后一个参数的内容,因此" ???"。 我正在创建一个如下所示的过程,并且select语句有一个" WHERE字段IN(SELECT * FROM LocationIDs).LocationIDs是"用户定义的表类型"一列" LocationID"。

CREATEPROCEDURE [dbo].[PROCEDURE_NAME]
@COMPANY_ID varchar(50),
@MIN_YEAR INT,
@MIN_WEEK INT,
@LOCATION_ID LocationIDs READONLY

希望有人可以帮助我:)。

0 个答案:

没有答案