在 Java 中调用 SQL Server 用户定义函数 (UDF)
Posted
技术标签:
【中文标题】在 Java 中调用 SQL Server 用户定义函数 (UDF)【英文标题】:Call SQL Server User-Defined Function (UDF) in Java 【发布时间】:2012-08-01 16:26:16 【问题描述】:和执行存储过程一样吗?
【问题讨论】:
我会为给你-1的那个人说话,然后离开......你能提供更多信息吗?在哪些方面相同? 【参考方案1】:不,SQL 函数必须通过其模式名称引用,并且必须是 SELECT 语句的适当部分的一部分。对于标量值函数,这类似于SELECT dbo.MyLookupFunction(12)
。对于表值函数,SELECT columnA, columnB, columnC FROM dbo.MyTableLookupFunction(12)
。有关 SQL 中函数的更多信息,请参阅 CREATE FUNCTION (Transact-SQL) 和 Executing User-Defined Functions (Database Engine)。
当然,Java 代码与任何其他查询相同。
【讨论】:
当我尝试SELECT dbo.MyLookupFunction(12)
时,我得到以下异常com.microsoft.sqlserver.jdbc.SQLServerException: The value is not set for the parameter number 1.
12 只是一个示例,如果您在 java 代码中使用参数,请尝试将 12 替换为 ?并执行。 Java 的类期望占位符匹配参数。 SQL 中的参数可以用两种方式表示,使用 ? 不命名,使用 @parametername 命名。
我正在使用?
字符,但它仍然无法正常工作。 SELECT dbo.MyLookupFunction(?,?)
有效吗?
将您使用的代码添加到您的问题中。那应该是有效的。以上是关于在 Java 中调用 SQL Server 用户定义函数 (UDF)的主要内容,如果未能解决你的问题,请参考以下文章
在 Java 中调用 SQL Server 存储过程时遇到问题