oracle查找隐藏字符串,oracle chr(0) 隐藏字符串

最近在工作的时候碰到一个很怪异的问题,

查询一个数据的时候拷贝出来,然后拿这一列去查询结果没有匹配到数据,无奈只能用like去匹配数据,这些就是有数据的,

然后翻来覆去对比数据好几次,没发现问题,拷贝出来到文本编辑器也没有发现问题,开始以为是后面存在空格,使用trim()函数后,依旧没有解决,

然后在网上查询  到了问题所在

在这里我又学到一个东西,chr(0) 隐藏字符串,可以隐藏其后面所有字符串,从而达到隐藏效果,这个一般肉眼看不到,只有查询字符串长度的时候才会发现其存在

大家也可以自己动手做做实验来证实一下,很涨逼格的:

下面引用:http://www.itpub.net/thread-707896-1-1.html

SQL>create table t_text (a varchar2(100)); SQL>insert into t_text values('1234'); 1 row inserted SQL>select length(a), '-'||a||'-' from t_text; LENGTH(A) '-'||A||'-' ---------- --------------------------          4 -1234- 这时候没有问题 SQL> update t_text set a = a||chr(0); 1 row updated SQL>commit; 现在加一个chr(0) SQL>select length(a),'-'||a||'-' from t_text; LENGTH(A) '-'||A||'-' ---------- -------------------------          5 -1234 字符串的长度显示是对的,但是结果却根本不是那么回事了 SQL>update t_text set a = a||'5678'; SQL> commit; SQL> select length(a),'-'||a||'-' from t_text; LENGTH(A) '-'||A||'-' ---------- --------------------------          9 -1234 后面的东西没法显示出来了?? SQL> select substr(a,6,4) from t_text; SUBSTR(A,6,4) ------------- 5678

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值