jpa 调用oracle 有out的存储过程报错 只有int的就没问题?报错-问答-阿里云开发者社区-阿里云

开发者社区> 问答> 正文

jpa 调用oracle 有out的存储过程报错 只有int的就没问题?报错

爱吃鱼的程序员 2020-06-06 09:46:54 130

oracle创建存储过程

create or replace procedure PT(a in int,b out int)
    is
    BEGIN
        b :=1;
         dbms_output.put_line(b);
    END;
    /

实体类

@NamedStoredProcedureQuery(name="test", procedureName = "PT",parameters= {
        @StoredProcedureParameter(mode=ParameterMode.IN,type=int.class, name="a"),
        @StoredProcedureParameter(mode=ParameterMode.OUT,type=int.class, name="b")
})

Reponsitory

@Procedure(name="test")
int createPolicy(@Param("a")int a);

调用后报错:

org.springframework.dao.InvalidDataAccessApiUsageException: OUT/INOUT parameter not available: b; nested exception is java.lang.IllegalArgumentException: OUT/INOUT parameter not available: b

意思缺少b这个参数

Reponsitory  加上参数b后报错

org.springframework.dao.InvalidDataAccessApiUsageException: Can only bind values for IN/INOUT parameters : org.hibernate.query.procedure.internal.ProcedureParameterImpl@101c15ad; nested exception is java.lang.IllegalStateException: Can only bind values for IN/INOUT parameters : org.hibernate.query.procedure.internal.ProcedureParameterImpl@101c15ad
 

 

存储 Oracle 关系型数据库 Java
分享到
取消 提交回答
全部回答(1)
  • 爱吃鱼的程序员
    2020-06-06 09:47:12
                        <p>只有in的可以掉用 有out或者inout就报错</p>
                    
    
                        <pre>@Procedure(name="test")
    

    int createPolicy(@Param("a")int a,@Param("b")int b);

    0 0
数据库
使用钉钉扫一扫加入圈子
+ 订阅

分享数据库前沿,解构实战干货,推动数据库技术变革

推荐文章
相似问题
推荐课程