【问题标题】:java.sql.SQLException: Incorrect syntax near the keyword 'top'java.sql.SQLException:关键字“top”附近的语法不正确
【发布时间】:2013-06-12 11:58:57
【问题描述】:

我有存储过程

CREATE PROC dbo.TestSproc

as
select COUNT(*) from dbo.TestCase

它没有做任何有用的事情,但我不能通过休眠调用它

Query query = m_entityManager.createNativeQuery("CALL TestSproc()");
query.getSingleResult();

它会导致 java.sql.SQLException:关键字“top”附近的语法不正确。其他程序也有同样的问题。

并且此过程中没有TOP 语句。有没有人知道如何修复它?

【问题讨论】:

  • 可能是因为你使用了getSingleResult()
  • 谢谢,确实是getSingleResult()造成的
  • 如果你的 DB 是 Oracle,"Top" 将不起作用。您使用 RowNum。所以如果你想要前 1 名,那就是 RowNum =1。如果你想要前 10 名,那就是 RowNum

标签: java sql-server hibernate stored-procedures


【解决方案1】:

如果您使用的是 SQL Server,您可能想尝试使用 exec TestSproc 而不是 CALL TestSproc() 执行存储过程。我猜TOP 错误来自getSingleResult()。先修复sproc错误。

【讨论】:

猜你喜欢
  • 2016-06-08
  • 2013-12-16
  • 2021-03-08
  • 1970-01-01
  • 2017-11-22
  • 2018-06-16
  • 2013-10-29
  • 2014-06-22
  • 1970-01-01
相关资源
最近更新 更多