【发布时间】:2013-12-10 16:22:53
【问题描述】:
我正在尝试通过Apache Common DbUtils 调用SQLServer 存储的标量函数。
我尝试过这样的事情:
run.query("SELECT [MyDB].[dbo].[test] ('testParam')", new ScalarHandler());
但是,我得到了这个例外:
com.microsoft.sqlserver.jdbc.SQLServerException: com.microsoft.sqlserver.jdbc.SQLServerException: Unable to identify the table SELECT [MyDB].[dbo].[test] ('testParam') for the metadata.
同时,在 SQLServer 中运行相同的查询会返回一个有效的标量值。
我想知道如何使用 Apache DbUtils 调用标量函数。
更新:对于表值函数,如果我使用“SELECT * FROM...”,它就可以工作
【问题讨论】:
-
你试过用 exec 命令代替 select 吗? msdn.microsoft.com/pt-br/library/ms188332.aspx
-
是的,EXEC 不返回任何内容。
-
我没有使用 Apache Common DBUtils 的经验,但我会尝试执行代码,因为我有一个包含一行和一列的记录集。
-
run 是 QueryRunner 的实例吗?它在构造函数中有参数 pmdKnownBroken。尝试将其设置为 true。
-
你试过在ScalarHandler中设置ResultSet参数吗?
标签: java sql-server jdbc user-defined-functions apache-commons-dbutils