笔记:ORACLE数据库表数据全角转半角

说明

数据导入后发现部分数据为全角数据,不符合条件,需要进行转换

分析

使用数据库自带的函数进行处理

语法: TO_MULTI_BYTE(String)

功能: 计算所有单字节字符都替换为等价的多字节字符的String.该函数只有当数据库字符集同时包含多字节
和单字节的字符的时候有效.否则, String不会进行任何处理. TO_MULTI_BYTE和TO_SINGLE_BYTE是相反的
两个函数.
语法: TO_SINGLE_BYTE(String )

功能: 计算String中所有多字节字符都替换为等价的单字节字符.该函数只有当数据库字符集同时包含多字节
和单字节的字符的时候有效.否则, String不会进行任何处理.

处理

update bd_nav_poi 
set name=to_single_byte(to_char(name)),
addname=to_single_byte(to_char(addname)),
othername=to_single_byte(to_char(othername)),
oldname=to_single_byte(to_char(oldname)),
address=to_single_byte(to_char(address)) ;

update bd_nav_poi set 
name=replace(name,'~','~'),
addname=replace(addname,'~','~'),
othername=replace(othername,'~','~'),
oldname=replace(oldname,'~','~'),
address=replace(address,'~','~');

update bd_nav_poi set 
name=replace(name,'$','$'),
addname=replace(addname,'$','$'),
othername=replace(othername,'$','$'),
oldname=replace(oldname,'$','$'),
address=replace(address,'$','$');

update bd_nav_poi set 
name=replace(name,'_','_'),
addname=replace(addname,'_','_'),
othername=replace(othername,'_','_'),
oldname=replace(oldname,'_','_'),
address=replace(address,'_','_');

update bd_nav_poi set 
name=replace(name,'=','='),
addname=replace(addname,'=','='),
othername=replace(othername,'=','='),
oldname=replace(oldname,'=','='),
address=replace(address,'=','=');

update bd_nav_poi set 
name=replace(name,'{','{'),
addname=replace(addname,'{','{'),
othername=replace(othername,'{','{'),
oldname=replace(oldname,'{','{'),
address=replace(address,'{','{');

update bd_nav_poi set 
name=replace(name,'}','}'),
addname=replace(addname,'}','}'),
othername=replace(othername,'}','}'),
oldname=replace(oldname,'}','}'),
address=replace(address,'}','}'); 


update bd_nav_poi set 
name=replace(name,'<','<'),
addname=replace(addname,'<','<'),
othername=replace(othername,'<','<'),
oldname=replace(oldname,'<','<'),
address=replace(address,'<','<');

update bd_nav_poi set 
name=replace(name,'>','>'),
addname=replace(addname,'>','>'),
othername=replace(othername,'>','>'),
oldname=replace(oldname,'>','>'),
address=replace(address,'>','>');

update bd_nav_poi set 
name=replace(name,'^','^'),
addname=replace(addname,'^','^'),
othername=replace(othername,'^','^'),
oldname=replace(oldname,'^','^'),
address=replace(address,'^','^');
 

符号圆角半角一样
:“”《》。? 半角
:“”《》。? 圆角

字段值类型为nvarchar2,在直接使用to_single_byte未生效,加了一个char转换完成了数据调整,部分符号无法转换,需手动replace。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值