XML配置文件内容如下:
存储过程代码如下:
经测试,原因在于:
<parameter property="p5" javaType="java.lang.String" jdbcType="varchar" mode="OUT" /> 中的jdbcType="varchar" 应为 jdbcType="VARCHAR",varchar应该大写;但是mode="IN"中的varchar可以小写!
<parameterMap class="map" id="psDemoParams">
<parameter property="p1" javaType="java.lang.String" jdbcType="VARCHAR" mode="IN" />
<parameter property="p2" javaType="java.lang.String" jdbcType="VARCHAR" mode="IN" />
<parameter property="p3" javaType="java.lang.String" jdbcType="VARCHAR" mode="IN" />
<parameter property="p4" javaType="java.lang.String" jdbcType="varchar" mode="IN" />
<parameter property="p5" javaType="java.lang.String" jdbcType="varchar" mode="OUT" />
</parameterMap>
<procedure id="getServiceName"
parameterMap="psDemoParams"
resultClass="java.lang.String">
<![CDATA[
{call psDemo(?,?,?,?,?)}
]]>
</procedure>
存储过程代码如下:
SET QUOTED_IDENTIFIER ON
GO
SET ANSI_NULLS ON
GO
ALTER procedure dbo.psDemo
(
@p1 varchar(10),
@p2 varchar(5),
@p3 varchar(5),
@p4 smallint,
@p5 varchar(100) OUTPUT
)
AS
......
GO
SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS ON
GO
经测试,原因在于:
<parameter property="p5" javaType="java.lang.String" jdbcType="varchar" mode="OUT" /> 中的jdbcType="varchar" 应为 jdbcType="VARCHAR",varchar应该大写;但是mode="IN"中的varchar可以小写!