数据库

 首页 > 数据库 > Oracle > oracle varchar2字段中的乱码数据提取

oracle varchar2字段中的乱码数据提取

分享到:
【字体:
导读:
         摘要:oraclevarchar2字段中的乱码数据提取由于工作需要,在迁移一批数据时发现一张表的varchar2字段本应该由数字组成,但出现了乱码。如下图。现在就是要把这几十万数据中的乱码数据提取出来。问了下度娘,他老人家... SyntaxHighlighter.all(); ...

oracle varchar2字段中的乱码数据提取
oracle varchar2字段中的乱码数据提取
 
由于工作需要,在迁移一批数据时发现一张表的varchar2字段本应该由数字组成,但出现了乱码。如下图。


 
现在就是要把这几十万数据中的乱码数据提取出来。
问了下度娘,他老人家告诉我用这个函数:translate
以下是这个函数的说明 :
http://www.2cto.com/database/201110/109385.html 
废话不多说开工。
1 create table temp_color_group_new as
2 select t.color_group_no,
3        translate(t.color_group_no, '9876543210', ' ') as new_no,
4        t.svc_inst_id  www.2cto.com  
5   from temp_color_group t;
translate(t.color_group_no, '9876543210', ' ') as new_no
这里的color_group_no是可能出现的乱码字段,
 '9876543210':根据实际情况变更,本场景为color_group_no只可能是数字组成,如果有字母的话再加上就好。如果有汉字呢?⊙?⊙b汗~~没研究了,那位有高人有着告诉我一下哈。。学习学习。
' ':这里是个空格,不要定义为空''否则转换后的新号码都是null了。。也可以定义成特殊字符如“_”不过,后面转换稍麻烦点。。
创建好临时表temp_color_group_new 这个后,再将空格trim掉。
update  temp_color_group_s  set new_no = trim(new_no) ; 
此时new_no字段符合数字规则的应该都变成null了 is not null的都是乱码数据或者有特殊字符的数据如换行符等。
 


 
 
作者 北京—王志伟
oracle varchar2字段中的乱码数据提取
分享到:
plsql遇到乱码的问题
plsql遇到乱码的问题 plsql遇到乱码的问题   查看一些数据库服务器和客户端的额字符集有没有不同的: [html] select * from nls_database_parameters;   select * from nls_instance_parameters;   select * from v$nls_parameters t where t.PARAMETER ='NLS_LANGUAGE' or t.PARAMETER ='NLS_CHARACTERS...
探索ORACLE之RMAN_03非一致性备份
探索ORACLE之RMAN_03非一致性备份   相关链接: 探索ORACLE之RMAN_01概念 http://www.2cto.com/database/201205/132243.html; 探索ORACLE之RMAN_02基本使用 http://www.2cto.com/database/201205/132329.html; 探索ORACLE之RMAN_02一致性备份 http://www.2cto.com/database/201205/132664.html   在上一篇博文中提到了...
  •         php迷,一个php技术的分享社区,专属您自己的技术摘抄本、收藏夹。
  • 在这里……