易截截图软件、单文件、免安装、纯绿色、仅160KB

oracle中的不可见字符

今天做统计的时候发现一个数据表面上看来是‘920 ’但去空格无乱如何都去不掉,最后发现是不可见字符。。。
于是在网上搜到一篇文章,如何来判断这个不可见字符的问题~
按下面的方法判断出不可见字符的ascII码是10,于是用rtrim('原字符','chr(10)')来去掉这个不可见字符。
今天遇到一则案例,问题是数据库中看来完全相同的字段却存在长度差异。
  通过lengthb以及dump,我们可以知道问题所在:
      SQL> select trim(log.sname),dump(log.sname),lengthb(log.sname) 
  2 from st.LIMPORT_LOG log 
  3 where log.dfee > date '2008-06-22' 
  4 and log.dfee < date '2008-06-23' 
  5 and log.sspname like '263%' 
  6 group by log.sname,dump(log.sname); 
  TRIM(LOG.SNAME) DUMP(LOG.SNAME) LENGTHB(LOG.SNAME) 
  ------------------- ----------- ---------------------------------------------- 
  263网络通信 Typ=1 Len=15: 50,54,51,205,248,194,231,205,168,208,197,0,0,0,0 15 
  263网络通信 Typ=1 Len=11: 50,54,51,205,248,194,231,205,168,208,197 11
  使用DUMP函数我们发现,在有问题的数据中,数据末尾存在几个字符0,0,0,0,也就是多出了几个字符。
  正是这多出的几个字符导致了存储异常。
  那么这个0代表什么字符呢?在ASCII编码表里我们可以看到这对应了一个不可见字符,这是数据入库时的异常导致的:
  -The End-


相关文档:

在Oracle中的树形操作

在Oracle中的树形操作
1.取子节点及路径(正树):
select t.id ,t.code, t.name ,t.pid
,SYS_CONNECT_BY_PATH(t.id,'.')||'.' as IdPath
from tas_catalog t
--where id!=110
start with id=110
connect by  pid = prior id
order siblings  by id
2.取各级父节点(倒树):
select t.id ,t.code, t.na ......

oracle 之系统表 点滴 积累

查看正在执行的sql语句
SELECT osuser, username, sql_text from v$session a, v$sqltext b where a.sql_address =b.address order by address, piece;
捕捉运行很久的SQL
 select username,sid,opname, round(sofar*100 / totalwork,0) || '%' as progress, time_remaining,sql_text from v$session_longops , v$ ......

Oracle RAC 修改 IP 地址


 
IP 地址做如下修改:
Public IP 10.85.10.119/121    -- >  10.85.10.219/221
Privite IP 192.168.1.119/121   -- >  192.168.1.219/221
Virtual IP 10.85.10.122/123   --  ......

带你轻松接触Oracle执行计划的相关概念

Oracle执行计划的相关概念:
rowid:系统给oracle数据的每行附加的一个伪列,包含数据表名称,数据库id,存储数据库id以及一个流水号等信息,rowid在行的生命周期内唯一。
recursive sql:为了执行用户语句,系统附加执行的额外操作语句,譬如对数据字典的维护等。
row source(行源):oracle执行步骤过程中,由上一 ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号