您的位置:首页 > 数据库

老数据库乱码禁止升级数据库编码,却要用乱码数据作为操作条件

2016-12-22 16:33 211 查看
有很多人到公司需要做一些历史遗留问题,比如数据库乱码数据无法操作。我遇到的问题是:数据库用户名乱码,但是数据库重要东西太多,禁止升级数据库编码,但是在修改数据的时候又要依据数据库的用户名进行分组,同样用户名的数据可能有很多。既然是同一个数据库编码,那么分组是可以的,因为它本身显示的乱码是根据自己本身的编码机制来显示的,分组的时候还是按照进来的数据归类分组。每条数据有个唯一的id,那我现在处理一条同一用户名的数据的时候,要对所有这一用户名的数据同时进行更改,我发现就算你直接复制乱码数据放到plsql里面按照条件查询也是查不到的。比如:
select * from t_97_interface t where t.b9i_new_user_name='上海?O?O物流有限公司'

我开始用了一种方法是手动for update  把乱码的数据改成能识别的问号等等,但是乱码数据是不断生成的,我放弃了这种方法,于是想到既然数据库自己能识别乱码数据,我就让它查出来的数据当成它自己的条件。

select * from t_97_interface t right join (select t.b9i_new_user_name from t_97_interface t where t.b9i_interface_serial_no='100226257') t2
on t.b9i_new_user_name=t2.b9i_new_user_name


果然,这样可以,也不是多么牛逼的新技术,只是觉得有时候可以灵活点处理!

select * from t_97_interface t right join (select t.b9i_new_user_name from t_97_interface t where t.b9i_interface_serial_no='100226257') t2
on t.b9i_new_user_name=t2.b9i_new_user_name
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  乱码 数据库
相关文章推荐