myBatis 调用oracle存储过程报错?报错-问答-阿里云开发者社区-阿里云

开发者社区> 问答> 正文

myBatis 调用oracle存储过程报错?报错

爱吃鱼的程序员 2020-06-22 13:28:56 55

我用myBatis 调用一个有多个参数+多个返回参数+一个游标 oracle存储过程,存储过程中有判断如果某个参数不正确,则直接返回不执行游标查询。这个时候myBatis会抛异常:

### Cause: java.sql.SQLException: Ref 娓告爣鏃犳晥
; uncategorized SQLException for SQL []; SQL state [null]; error code [17062]; Ref 娓告爣鏃犳晥; nested exception is java.sql.SQLException: Ref 娓告爣鏃犳晥
    at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:83)
    at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:80)
    at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:80)
    at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:73)
    at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:368)
    at $Proxy4.selectOne(Unknown Source)
    at org.mybatis.spring.SqlSessionTemplate.selectOne(SqlSessionTemplate.java:163)
    at org.apache.ibatis.binding.MapperMethod.execute(MapperMethod.java:63)


求教大神该如何解决

存储 SQL Oracle Java 关系型数据库 数据库连接 mybatis
分享到
取消 提交回答
全部回答(1)
  • 爱吃鱼的程序员
    2020-06-22 13:29:15

    咋没人回复呢

    不要用任何和ORM相关的封装

    所有ORM相关的封装,都是根据mysql来封装的

    mysql不是数据库

    所以任何的ORM都不能完整的支持数据库的操作

    楼主提到的是你最钟爱的Oracle,你是不是反应过激了,呵呵

    回复<aclass='referer'target='_blank'>@xmut: 正是因为用了oracle或者其他任何真正的数据库

    都会被这些框架困扰。 

    这些数据库框架的设计者,基本上都被mysqlFK过了。 

    <divclass="ref">

    引用来自“宏哥”的答案

    <divclass=ref_body>

    不要用任何和ORM相关的封装

    所有ORM相关的封装,都是根据mysql来封装的

    mysql不是数据库

    所以任何的ORM都不能完整的支持数据库的操作

    1.找到异常的存储过程。在数据库端执行。看会不会报异常。

    2.如果1返回true.那么你再检查。你用来接收的类型是什么类型.<至少是一个集合类型> 原因不用我多少了吧.. 

     自己检查下. 

    我在接收map里面给的类型是CURSOR,当存储过程中游标从来没开启过时,mybatis读取返回值是就出错了。

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

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

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