【问题标题】:Call SQL Server User-Defined Function (UDF) in Java在 Java 中调用 SQL Server 用户定义函数 (UDF)
【发布时间】:2012-08-01 16:26:16
【问题描述】:

和执行存储过程一样吗?

【问题讨论】:

  • 我会为给你-1的那个人说话,然后离开......你能提供更多信息吗?在哪些方面相同?

标签: java sql-server-2008 user-defined-functions


【解决方案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(?,?) 有效吗?
  • 将您使用的代码添加到您的问题中。那应该是有效的。
猜你喜欢
  • 2011-05-06
  • 2018-06-30
  • 1970-01-01
  • 2011-05-31
  • 2016-11-25
  • 1970-01-01
  • 1970-01-01
  • 2019-06-10
相关资源
最近更新 更多