如何从SQL Server解析“未声明游标”

时间:2011-10-19 16:37:50

标签: sql sql-server spring websphere

我通过WebSphere中的Spring连接到SQL Server。我有一个非常简单的动态SQL(下面)抛出“光标未声明。”

SELECT TOP 1
    short_desc shortDescription
FROM
    product.prs.PRODUCT_SKN (nolock)
WHERE
    prod_sales_div_code = 'XXX'
    AND product_nbr = ?

似乎相关的数据源的一个设置是“选择模式”是“光标”。我不确定我需要做些什么来解决错误。

编辑主叫代码是: findShortDescriptionQuery.get().findObjectByNamedParam(of("productNumber", productId))

3 个答案:

答案 0 :(得分:0)

尝试说WITH (nolock)而不仅仅是(nolock)。最新版本的sql server不再支持后一种语法。

答案 1 :(得分:0)

我完全删除了“nolock”指令以及“TOP 1”,问题就消失了。这让我怀疑它与JDBC驱动程序有关。

这种解决方法不太理想,但对我的目的来说会很好。

答案 2 :(得分:0)

检查您正在使用的服务器上的数据库。如果在同一服务器上有不同的数据库,那么默认情况下,如果不指定,sql客户端通常会选择“master”或其他类似的运行查询。在查询之前选择包含您要查询的表或使用USE <dbname> GO的表将处理错误。