java—通过ibatis调用存储过程时出错无法解析例程(x)

oknrviil  于 2021-07-26  发布在  Java
关注(0)|答案(0)|浏览(241)

我的任务是对一个已经运行的应用程序进行一些新的开发,这个应用程序使用java和ibatis(mybatis)以及informix数据库。这个开发的一部分是调用一个已经存在的spl,这个spl用一些新的参数进行了更新。所以这个spl已经使用了很长一段时间了。
我在xml文件中添加了所有的参数,其中包含了我们的查询和内容,java逻辑和内容将它们添加到参数散列Map中,散列Map是spl的参数(就像我以前做的那样)……但是,当我想调用该过程时,它会给我以下错误:
类:sqlmapclient操作;sql[]的未分类sqlexception;sql状态[ix000];错误代码[-674];执行查询过程时出错。检查{call xx(…)}。
---检查sql语句(准备失败)。
---原因:java.sql.sqlexception:无法解析例程(x)。;嵌套异常为com.ibatis.common.jdbc.exception.nestedsqlexception:
---错误出现在xml/x.xml中。
我不认为我可以张贴代码,因为它可能是机密或类似的东西,所以这就是为什么我没有附上整个日志(名称和类似的东西)。但是,我的同事检查了spl日志,他们告诉我java甚至没有调用它,所以错误就在调用之前。当param#param#为空时,我们将其作为null发送,这可能是一个好消息。在添加新的参数之前,应用程序执行了相同的spl,工作起来很有魅力。
我在谷歌上搜索过,这里有很多类似的问题,但没有一个能给我一个有用的答案。谷歌表示,这个错误意味着三件事:
错误的参数数
没有权限。
错误的参数类型。
我已经检查了1和2的东西,我很确定这些不是问题。我不认为第三个选项是问题所在,因为我尝试用call x(null,null…)执行硬编码的xml调用(所有内容都为null以避免变量类型的问题),它不断地向我抛出错误。当然,我检查了java日志,并显示参数的格式是正确的(它们大部分是带有几个小数和一些字符串的数量,我已经检查了小数和类似的东西的语法),并且数字是正确的。所以我把这个调用从日志复制到我的sql工作台上,它成功了!但是将相同的调用复制到xml文件中并尝试通过java执行它失败了。
所以问题是:你能想到其他可能导致问题的因素吗?包含sql的xml文件是编译的,因此也不是语法错误。
太感谢你了!

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题