mybatis操作存储过程小细节错误
项目开发的时候遇到一个错误:org.springframework.jdbc.BadSqlGrammarException: ### Error querying database. Cause: java.sql.SQLException: ORA-06550: 第 8 行, 第 4 列: PLS-00103: 出现符号 ";"在需要下列之一时: . ( ) , * @ % & = - + < / > at in is mod remainder not rem => <> or != or ~= >= <= <> and or like like2 like4 likec between || indicator multiset member submultiset 符号 ")" 被替换为 ";" 后继续。 ### The error may exist in file [D:\Program Files\Workspaces\MyEclipse for Spring 2014\salesmanb2b\WebRoot\WEB-INF\classes\sqlmap\ProductMapper.xml] ### The error may involve com.salesmanb2b.mapper.ProductMapper.getProductsProc-Inline ### The error occurred while setting parameters ### SQL: {call GET_PRODUCTS ( ?, ?, ?, ?, ? } ### Cause: java.sql.SQLException: ORA-06550: 第 8 行, 第 4 列: PLS-00103: 出现符号 ";"在需要下列之一时: . ( ) , * @ % & = - + < / > at in is mod remainder not rem => <> or != or ~= >= <= <> and or like like2 like4 likec between || indicator multiset member submultiset 符号 ")" 被替换为 ";" 后继续。 ; bad SQL grammar []; nested exception is java.sql.SQLException: ORA-06550: 第 8 行, 第 4 列: PLS-00103: 出现符号 ";"在需要下列之一时: . ( ) , * @ % & = - + < / > at in is mod remainder not rem => <> or != or ~= >= <= <> and or like like2 like4 likec between || indicator multiset member submultiset 符号 ")" 被替换为 ";" 后继续。
原来是映射文件出错
<select id="getProductsProc" parameterType="java.util.Map" statementType="CALLABLE"> {call GET_PRODUCTS ( #{proid,jdbcType=INTEGER, mode=IN}, #{product1,javaType=ResultSet,jdbcType=CURSOR,resultMap=product,mode=OUT}, #{product2,javaType=ResultSet,jdbcType=CURSOR,resultMap=product,mode=OUT}, #{product3,javaType=ResultSet,jdbcType=CURSOR,resultMap=product,mode=OUT}, #{product4,javaType=ResultSet,jdbcType=CURSOR,resultMap=product,mode=OUT} ) } </select>
call后面 右括号 忘了写
这是一个小细节
PS:
对于Oracle存储过程
建议 用navicat 编写好之后运行 成功再去编写代码
本站文章为和通数据库网友分享或者投稿,欢迎任何形式的转载,但请务必注明出处.
同时文章内容如有侵犯了您的权益,请联系QQ:970679559,我们会在尽快处理。