热点
Windows运行库高效管理及安全加固,reasoning_content:我们要求以原生开发工程师的口吻,写一个与技术、科技相关,关于[Windows环境高效运行库管理与安全加固策略]的标题直接输出一个标题,不要加说明提示等信息简短精炼,字数控制在30字以内nn需要理解:原生开发工程师通常指使用C/C++等直接与操作系统API交互的开发者,强调底层、性能、安全标题要聚焦Windows环境下的运行库管理(比如DLL、VC运行时等)和安全性加固策略要简洁有力nn可能的比如Windows运行库高效管理及安全加固实战或者原生开发视角:Windows运行库管理与安全加固等但需要更精炼nn考虑到字数30字以内,可以写:Win环境运行库管理及安全加固策略 或者 Windows高效运行库管理与安全加固nn再想想:用“原生开发”强调身份,标题可以包含“原生开发工程师的…”,但可能会超字数或者直接用“Windows运行库高效管理+安全加固”建议: Windows运行库管理:高效与安全加固 字数14字nn但要求是“关于[Windows环境高效运行库管理与安全加固策略]”,所以标题要体现这个主题直接取:Windows高效运行库管理与安全加固策略 共14字,符合nn但注意:原问题中括号内的内容就是主题,我们可以直接取其中核心词或者稍微调整更专业些nn我决定用:Windows运行库高效管理及安全加固 字数13字
5G驱动通讯变革,小程序开启分布式事务新纪元,reasoning_content:我们要求以分布式事务专家的口吻,写一个与技术、科技相关,关于[5G驱动通讯变革,小程序开启移动互联新篇章]的标题要简短精炼,30字以内注意口吻是分布式事务专家,这个专家身份可能体现在对分布式系统、一致性、事务等的理解上,但标题要结合5G和小程序可以运用一些技术术语如一致性地基、原子化、异步共识等例如:5G+小程序:分布式事务专家眼中的移动互联原子化新纪元 但可能超字数?需要调整或者5G驱动通讯变革,小程序开启原子化新篇章 但不够体现专家口吻尝试:5G与小程序:分布式事务专家解读移动互联的最终一致性 但可能不直接更直接的:5G催生通讯变革,小程序实现移动互联分布式新架构 字数?数一下:5G催生通讯变革,小程序实现移动互联分布式新架构 (共17字?小程序实现移动互联分布式新架构 13字+前面5个=18) 但不够精炼考虑:5G赋能通讯,小程序打造移动互联分布式新篇章 16字或者5G驱动通讯变革,小程序重构移动互联分布式生态 17字或者5G+小程序:分布式事务专家的移动互联新范式 15字选一个最好强调事务或一致性如:5G通讯变革下,小程序的分布式事务一致性新篇 15字或者5G驱动通讯变革,小程序开启分布式事务新纪元 17字这个不错输出
17 9 月 2026, 周四

oracle – 使用mybatis 3调用pl / sql函数

我有一个函数在pl / sql中返回一个布尔值.我试过了

直接获取该布尔值但没有成功,所以现在我正在尝试将其转换为字符串(我不想修改数据库):

<parameterMap id="publicObject"   type="map">
<parameter javaType="java.lang.Object" jdbcType="VARCHAR" mode="OUT" property="result" /> 
<parameter javaType="java.lang.String" jdbcType="VARCHAR" mode="IN" property="id" /> 
</parameterMap>     

<select id="isPublicObject" parameterMap="publicObject" statementType="CALLABLE">

   <![CDATA[
    {
    declare
    v_bool BOOLEAN := TRUE;
    begin
    v_bool := PACKNAME.STF$IS_PUBLIC_OBJECT(#{id});
    #{result} := CASE WHEN v_bool THEN 'TRUE' ELSE 'FALSE' END;
    end;
    }
    ]]>

</select>

然后我得到这个例外:
“查询数据库时出错.原因:org.apache.ibatis.type.TypeException:使用JdbcType OTHER为参数#2设置null时出错.尝试为此参数设置不同的JdbcType或不同的jdbcTypeForNull配置属性.原因:java.sql.SQLException :列类型无效:1111 ####

此代码在数据库中正常工作:

declare
    v_bool BOOLEAN := TRUE;
    v_str  VARCHAR2(5);
begin
   v_bool := PACKNAME.STF$IS_PUBLIC_OBJECT('000000');
   v_str := CASE WHEN v_bool THEN 'TRUE' ELSE 'FALSE' END;
   dbms_output.put_line('result:');
   dbms_output.put_line(v_str); 
end;

解决方法

我写了parameterType&地图示例.它适用于我的测试数据.

XML:

<update id="isPublicObject" parameterType="map" statementType="CALLABLE">
    declare
        v_bool BOOLEAN := TRUE;
    begin
        v_bool := PACKNAME.STF$IS_PUBLIC_OBJECT(#{id});
        #{result,jdbcType=VARCHAR,mode=OUT} := CASE WHEN v_bool THEN 'TRUE' ELSE 'FALSE' END;
    end;
</update>

制图员:

public interface PLSQLMapper {
    public void isPublicObject(Map<String,Object> parameterMap);
}

主要:

PLSQLMapper mapper = session.getMapper(PLSQLMapper.class);

Map<String,Object> parameterMap = new HashMap<String,Object>();
parameterMap.put("id",1);
mapper.isPublicObject(parameterMap);
System.out.println("result: " + parameterMap.get("result"));

dawei

【声明】:天津站长网内容转载自互联网,其相关言论仅代表作者个人观点绝非权威,不代表本站立场。如您发现内容存在版权问题,请提交相关链接至邮箱:bqsm@foxmail.com,我们将及时予以处理。

您错过了

Windows运行库高效管理及安全加固,reasoning_content:我们要求以原生开发工程师的口吻,写一个与技术、科技相关,关于[Windows环境高效运行库管理与安全加固策略]的标题直接输出一个标题,不要加说明提示等信息简短精炼,字数控制在30字以内nn需要理解:原生开发工程师通常指使用C/C++等直接与操作系统API交互的开发者,强调底层、性能、安全标题要聚焦Windows环境下的运行库管理(比如DLL、VC运行时等)和安全性加固策略要简洁有力nn可能的比如Windows运行库高效管理及安全加固实战或者原生开发视角:Windows运行库管理与安全加固等但需要更精炼nn考虑到字数30字以内,可以写:Win环境运行库管理及安全加固策略 或者 Windows高效运行库管理与安全加固nn再想想:用“原生开发”强调身份,标题可以包含“原生开发工程师的…”,但可能会超字数或者直接用“Windows运行库高效管理+安全加固”建议: Windows运行库管理:高效与安全加固 字数14字nn但要求是“关于[Windows环境高效运行库管理与安全加固策略]”,所以标题要体现这个主题直接取:Windows高效运行库管理与安全加固策略 共14字,符合nn但注意:原问题中括号内的内容就是主题,我们可以直接取其中核心词或者稍微调整更专业些nn我决定用:Windows运行库高效管理及安全加固 字数13字