Oracle数据库中的字符处理技巧总结
2009-05-15 13:15:16 来源:WEB开发网在数据库开发与维护中,数据库管理员接触最多的数据类型就是字符类型了,包括字符串、日期类型的字符串等等。在Oracle数据库中为了帮助数据库管理员能够以最快的方式处理这些字符类型的数据,提供了许多有用的函数或者工具。笔者今天就谈谈在Oracle数据库中处理字符串的经验与心得。
一、去掉尾部的空格字符。
有时候在查询或者进行其他处理的时候,需要把字符串尾部的空格字符去掉。如有时候应用软件设计的不合理,会把空格字符保存在数据库中。如在输入产品品号的时候,用户不小心,把“DT001”输成了“DT001 ”。如果应用程序在设计的时候,能够自动把尾部的空格去掉然后在保存到数据库中能够就万无一失了。但是不少的应用软件在开发的时候没有如此设计。这就给后续的处理带来了很多的麻烦。因为利用Where语句来查找记录的时候,“DT001”(最后不带空格)与“DT001 ”(最后带一个空格)两个是不同的条件。如果想利用这个条件来进行数据更新、查询等等,就会遇到问题。为此在写相关的Update或者Select语句的时候,可能需要把后面的空格符号去掉。为此在Oracle数据库中,有很多种解决方式。如数据库管理员可以使用Ltrim函数来实现。这个函数的格式为Ltrim[c1,c2]。其作用是去掉C1左边所包含的C2种的任何字符。当遇到不是C2种的字符串时结束,然后返回剩余的字符串。如果把C2字符串设置为空格符号(默认情况下就是空格),那么就可以把DT001后面的空格符号去掉了。
二、在头部自动进行填充。
有时候可能数据库设计的时候,考虑的不够周到,导致某些字段不够大。在对数据库进行升级的时候,需要调整相关的字段。此时就可能需要对某个字段的头部进行填充,以达到数据一致性的要求。如现在有个ERP系统,其需要用到一张产品信息的表,其中有一个产品编号字段。刚开始在设计产品编码的时候,设计的长度不够,如只设置了5位。随着企业产品记录的增多,需要对这个编码的内容进行扩展。如产品信息属于包装材料类的,需要在原来产品编号的头部加入一个字符B;如产品信息属于客供品的,则需要在原来产品编号的头部加入一个字符C;如产品信息属于辅助材料的,则在原来的产品编号前面加入一个字符F;等等。此时该如何实现这个需求呢?难道要一个个去修改吗?现在这手工修改的工作量比较大,而且容易出错,这个方法不可取。其实在Oracle数据库系统中提供了一个单行字符函数,可以帮助数据库管理员与企业来解决这个问题。这个函数就是RPAD函数。这个命令的格式为RPAD(C1,N,C2)。这个函数的意识是在C1的右边填充字符C2,直到字符串的总长度满足N。默认情况下C2的值为空格,用户可以根据自己的需要设置这个值。如果C1的长度比N要大,则会截取C1右边的N个字符。现在如果要实现上面这个需求,则只需要设置函数RPAD(产品编号,6,F)即可。由于原来的产品编号为5位,现在需要为辅助信息的产品编号前面加入一个字符F,修改后的总长度变为6位。不过在使用这个函数的话,往往需要利用Where条件语句进行限制。
- ››oracle 恢复误删除的表和误更新的表
- ››Oracle分页查询排序数据重复问题
- ››Oracle创建dblink报错:ORA-01017、ORA-02063解决
- ››Oracle 提高SQL执行效率的方法
- ››Oracle 动态查询,EXECUTE IMMEDIATE select into...
- ››Oracle 11g必须开启的服务及服务详细介绍
- ››oracle性能34条优化技巧
- ››oracle数据库生成随机数的函数
- ››Oracle 数据库表空间容量调整脚本
- ››oracle单库彻底删除干净的方法
- ››Oracle创建表空间、创建用户以及授权、查看权限
- ››oracle 中 UPDATE nowait 的使用方法
更多精彩
赞助商链接