Oracle数据库中的字符处理技巧总结
2009-05-15 13:15:16 来源:WEB开发网四、字符串中的复杂替换。
几年之后,杭州进行来一些行政区划的规格,如把下沙市改为了直属杭州管辖的下沙区。为此有一家企业的数据库管理人员就问笔者,能否把一些记录中的下沙市都改为下沙区。什么意思呢?也就是说,在数据库中可有含有如下记录“下沙市某某钢铁厂”、“杭州市某某服装厂”、“滨江区某某信息有限公司”等等。现在数据库管理员希望把含下沙市的内容都改为下沙区。这涉及到一些复杂字段的替换,实现起来具有一定的难度。数据库是结构化数据的结合体,不比Word文档,可以利用查找替换功能来解决这个需求。那么在Oracle数据库中该如何实现呢?在Oracle数据库中就模拟实现了Word文档中的查找替换功能。
如在单行字符函数中有一个叫做Replace的函数,就可以帮助数据库管理员实现这个需求。这个函数的格式为Replace(C1,C2,C3)。他的含义就彪死后把C1中出现的C2都替换成C3,然后返回字符串。这是什么意思呢?其实就是跟Word文档中的查找替换功能类似。从字符串C1种查找C2的内容,如果找到的话利用C3来代替。如果C3 的内容为空,则所有在字段中出现C2内容的字符都将被删除。那要实现上面的需求,就可以把这个函数的参数设置为Replace(Adress,下沙市,下沙区)。然后再利用Upadate语句把这个函数返回的值赋值给地址字段即可。如此,在数据库地址字段中,出现下沙市的地方将全部被更新为下沙区。但是这个更改不会影响到其他的记录。如不会把杭州市也改为杭州区等等。
为此,要实现一些复杂的字符替换作业,可以利用函数Replace来完成。有时会,把Replace函数与其他函数相结合,还可以实现一些更加复杂的内容。如在产品基本信息中,产品编号中可能包含了产品的分类信息,如PSD001这个产品编号,第一个字符P表示成批,第二三个字符SD表示手动工具。如果自动工具的话就为PZD001。在生成报表的时候,如果利用这些字符来显示结果的话,显然报表的可读性并不是很好。此时数据库管理员可以先利用字符串截取函数或者利用上面所提到过的头部填充函数等等来截取相关的字符串,然后再利用现在这个查找替换函数,则可以把ZD等字符转换成“自动工具”等代表含义的字符串,这将提高报表的可读性。可见,将Replace替换函数与其他函数结合(C1、C2、C3参数都可以利用函数来实现)从而可以实现复杂的替换功能。
- ››oracle 中 UPDATE nowait 的使用方法
- ››Oracle ORA-12560解决方法
- ››Oracle 10g RAC 常用维护命令
- ››Oracle如何在ASM中定位文件的分布
- ››Oracle的DBMS_RANDOM.STRING 的用法
- ››oracle 外部表导入时间日期类型数据,多字段导入
- ››Oracle中查找重复记录
- ››oracle修改用户登录密码
- ››Oracle创建删除用户、角色、表空间、导入导出等命...
- ››Oracle中登陆时报ORA-28000: the account is lock...
- ››Oracle数据库在配置文件中更改最大连接数
- ››Oracle中在pl/sql developer修改表的两种方式
更多精彩
赞助商链接