码迷,mamicode.com
首页 > 数据库 > 详细

java对ORACLE中的于NCHAR数据的处理,查询

时间:2020-04-15 18:38:45      阅读:94      评论:0      收藏:0      [点我收藏+]

标签:csdn   数据   lan   column   rom   sele   result   jdb   去除   

nchar 数据如果指定了长度,如果数据不满指定的位数,将会在后面补空格。
所以当你使用 jdbc 或者其他框架以该字段作为查询条件时,形成的 sql 也会自动补空格
如:

SELECT FROM marketing_menu WHERE CDMC = “TEST ”

  



由于存在空格,查询的时候会出错。
正确书写方式去除空格:

SELECT FROM marketing_menu WHERE trim(‘ ‘ from CDMC) = ‘Test’

  

由于历史原因,当初设计这个表结构的人走了,代码有php转java,发现nchar无论如何查询不到,于是采用上面方法
亲测有效:

 <select id="selectByOidOrHoid" parameterType="java.lang.String"  resultMap="BaseResultMap">
        select
        <include refid="Base_Column_List" />
        from WX_PAY_LOG
        where
        ESTATE = 1
        <if test="oid != null" >
            and trim(‘ ‘ from OID) = #{oid}
        </if>
        <if test="hoid != null" >
            and HOID= #{hoid}
        </if>
        order by MTIME
    </select>

  

【转】https://blog.csdn.net/jacxuan/article/details/78780921

 

java对ORACLE中的于NCHAR数据的处理,查询

标签:csdn   数据   lan   column   rom   sele   result   jdb   去除   

原文地址:https://www.cnblogs.com/achengmu/p/12706613.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!