程序问答   发布时间:2022-06-02  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了如何将用户定义的表类型传递给Java的MSSQL请求大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

如何解决如何将用户定义的表类型传递给Java的MSSQL请求?

开发过程中遇到如何将用户定义的表类型传递给Java的MSSQL请求的问题如何解决?下面主要结合日常开发的经验,给出你关于如何将用户定义的表类型传递给Java的MSSQL请求的解决方法建议,希望对你解决如何将用户定义的表类型传递给Java的MSSQL请求有所启发或帮助;

您不能使用JDBC传递TVP。正如他们两年前提到的那样,Microsoft JDBC团队仍在为此进行工作。参链接:

访问:[http](http://blogs.msdn.com/b/jdbcteam/archive/2012/04/03/how-would-

you-use-table-valued-parameters-tvp.aspX) ://blogs.msdn.com/b/jdbcteam/archive/2012/04/03/how-would-you-use-table- valued-parameters- tvp.aspx

通过在过程主体中传递XML参数和OPENXML()来尝试一些替代解决方案,而不是使用TVP。

解决方法

给定一个简单的存储过程,该存储过程具有一个以整数列作为参数的表:

CREATE PROCEDURE [dbo].[table_sel]
@tbl INT32Table READONLY
AS
BEGIN
SET NOCOUNT ON;
SELECT value FROM @tbl
END

如何从Java执行此存储过程?从C#,这就是我想要的:

SqlConnection sqlconn;
System.Data.DataTable tbl = new System.Data.DataTable("INT32Table","dbo");
tbl.columns.Add("value",typeof(int));
tbl.Rows.Add(2);
tbl.Rows.Add(3);
tbl.Rows.Add(5);
tbl.Rows.Add(7);
tbl.Rows.Add(11);
using (SqlCommand command = new SqlCommand("table_sel"))
{
    command.Connection = sqlconn;
    command.Parameters.AddWithValue("@tbl",tbl);
    command.CommandType = System.Data.CommandType.StoredProcedure;
    SqlDataReader reader = command.ExecuteReader();

    //do stuff
}

大佬总结

以上是大佬教程为你收集整理的如何将用户定义的表类型传递给Java的MSSQL请求全部内容,希望文章能够帮你解决如何将用户定义的表类型传递给Java的MSSQL请求所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。