mybatis 存储过程有CHAR类型的输出 10
<selectid="p"statementType="CALLABLE"parameterType="java.util.HashMap">{#{result,mode...
<select id="p" statementType="CALLABLE" parameterType="java.util.HashMap">
{#{result,mode=OUT,jdbcType=DECIMAL} =call PKG.FUN(
#{zhh,mode=IN,jdbcType=VARCHAR},
#{gjzhzhh,mode=OUT,jdbcType=CHAR},
#{msg,mode=OUT,jdbcType=CHAR})}
</select>
如上,Oracle数据库中的gjzhzhh参数,尽然是3000多长度的CHAR类型字符,怎么能让他定长 展开
{#{result,mode=OUT,jdbcType=DECIMAL} =call PKG.FUN(
#{zhh,mode=IN,jdbcType=VARCHAR},
#{gjzhzhh,mode=OUT,jdbcType=CHAR},
#{msg,mode=OUT,jdbcType=CHAR})}
</select>
如上,Oracle数据库中的gjzhzhh参数,尽然是3000多长度的CHAR类型字符,怎么能让他定长 展开
1个回答
展开全部
1.无输入和输出参数的存储过程,我写了一个比较简单的,需要注意的是Oracle无参存储过程不能写括号
[sql] view plain copy
CREATE OR REPLACE Procedure cascadeoperation
As
Begin
Delete From teacher Where id=1;
Update studentdetail Set address='宁波市海曙区' Where studentid=10;
End;
这里执行了2个操作,可能用过mybatis的人会迷惑执行的时候到底使用update标签呢还是delete标签,其实都行,我也试过select标签也是OK的,下面是部分的配置文件
[html] view plain copy
<delete id="cascadeOperation" statementType="CALLABLE" >
{call cascadeoperation}
</delete>
2.带有输入和输出参数的存储过程,我这里加入了if else的几个判断
[sql] view plain copy
CREATE OR REPLACE Procedure queryTeacher(fid In Integer,Type In Varchar,Name Out Varchar)
[sql] view plain copy
CREATE OR REPLACE Procedure cascadeoperation
As
Begin
Delete From teacher Where id=1;
Update studentdetail Set address='宁波市海曙区' Where studentid=10;
End;
这里执行了2个操作,可能用过mybatis的人会迷惑执行的时候到底使用update标签呢还是delete标签,其实都行,我也试过select标签也是OK的,下面是部分的配置文件
[html] view plain copy
<delete id="cascadeOperation" statementType="CALLABLE" >
{call cascadeoperation}
</delete>
2.带有输入和输出参数的存储过程,我这里加入了if else的几个判断
[sql] view plain copy
CREATE OR REPLACE Procedure queryTeacher(fid In Integer,Type In Varchar,Name Out Varchar)
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询