我通过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))
答案 0 :(得分:0)
尝试说WITH (nolock)
而不仅仅是(nolock)
。最新版本的sql server不再支持后一种语法。
答案 1 :(得分:0)
我完全删除了“nolock”指令以及“TOP 1”,问题就消失了。这让我怀疑它与JDBC驱动程序有关。
这种解决方法不太理想,但对我的目的来说会很好。
答案 2 :(得分:0)
检查您正在使用的服务器上的数据库。如果在同一服务器上有不同的数据库,那么默认情况下,如果不指定,sql客户端通常会选择“master”或其他类似的运行查询。在查询之前选择包含您要查询的表或使用USE <dbname> GO
的表将处理错误。