oracle 存储过程 返回结果集 游标
create or replace procedure CODE_PROC(codeNo in VARCHAR2,
p_cursor out sys_refcursor)
is
str1 varchar2(20);
str2 varchar2(20);
begin
if length(codeNo)=2 then
str1:=codeNo||'%00';
str2:=codeNo||'0000';
elsif length(codeNo)=4 then
str1:=codeNo||'%';
str2:=codeNo||'00';
end if;
OPEN p_cursor FOR
select code_no,code_name from tb_code
where code_no like str1 and code_no!=str2;
end CODE_PROC;
<resultMap id="code_proc" class="com.xxx.Code" >
<result property="codeNo" column="code_no"/>
<result property="codeName" column="code_name"/>
</resultMap>
<parameterMap id="parameter-map" class="java.util.HashMap">
<parameter property="codeNo" jdbcType="VARCHAR" javaType="java.lang.String" mode="IN"/>
<parameter property="p_cursor" jdbcType="ORACLECURSOR" javaType="java.sql.ResultSet" mode="OUT" />
</parameterMap>
<procedure id="getCodeList" parameterMap="parameter-map" resultMap="code_proc">
{call PROV_CODE_PROC(?,?)}
</procedure>
public List<Code> getCodeList(String codeNo) {
Map parameterMap = new HashMap();
parameterMap.put("codeNo", codeNo);
return this.executeQueryForList("getCodeList", parameterMap);
}
java.sql.sqlException:类型长度大于最大值 数据库驱动问题
我的异常网推荐解决方案:oracle存储过程,http://www.aiyiweb.com/oracle-develop/177537.html