【发布时间】:2022-01-23 04:04:32
【问题描述】:
我正在尝试从 azure sql 调用一个基本存储过程,它只返回数字 1,看起来像这样
CREATE PROCEDURE [dbo].[testProc]
@TableName varchar(100)
AS
BEGIN
SET NOCOUNT ON
SELECT 1
END
我有一个 Spring Boot 应用程序尝试使用 @Query 注释调用存储过程
@Repository
@Transactional
public interface TestDAO extends JpaRepository<TestEntity, Long> {
@Query(value = "CALL testProc(:TableName)", nativeQuery = true)
Long invokeTestProc(@Param("TableName") String TableName);
}
但是,我得到一个例外,上面写着 “'@P0' 附近的语法不正确” 和 SQLGrammarException:无法提取 ResultSet。
我不知道如何解决这个问题,我尝试将 @Procedure 与 @NamedStoredProcedureQueries 注释一起使用,但它引发了另一个异常,提示“无法将位置参数与命名参数注册混合;”
【问题讨论】:
标签: java sql spring-boot jpa stored-procedures