老数据库乱码禁止升级数据库编码,却要用乱码数据作为操作条件
2016-12-22 16:33
211 查看
有很多人到公司需要做一些历史遗留问题,比如数据库乱码数据无法操作。我遇到的问题是:数据库用户名乱码,但是数据库重要东西太多,禁止升级数据库编码,但是在修改数据的时候又要依据数据库的用户名进行分组,同样用户名的数据可能有很多。既然是同一个数据库编码,那么分组是可以的,因为它本身显示的乱码是根据自己本身的编码机制来显示的,分组的时候还是按照进来的数据归类分组。每条数据有个唯一的id,那我现在处理一条同一用户名的数据的时候,要对所有这一用户名的数据同时进行更改,我发现就算你直接复制乱码数据放到plsql里面按照条件查询也是查不到的。比如:
我开始用了一种方法是手动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
果然,这样可以,也不是多么牛逼的新技术,只是觉得有时候可以灵活点处理!
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
相关文章推荐
- Android数据库表的创建和数据升级操作
- 如何解决python连接数据库编码问题(python传数据到mysql乱码)'ascii' codec can't encode _mysql_exceptions.OperationalError: (1366, "Incorrect string value:?
- 使用JSP开发应用程序时的编码(中文等乱码)问题的建议解决方案(包括接受request和数据库操作)
- web工程,页面操作后中文数据存到数据库后乱码
- 使用JSP开发应用程序时的编码(中文等乱码)问题的建议解决方案(包括接受request和数据库操作)
- 使用JSP开发应用程序时的编码(中文等乱码)问题的建议解决方案(包括接受request和数据库操作)
- MySql条件查询不到数据 → 更改数据库编码
- 数据库操作数据均乱码
- 向数据库插入数据时出现乱码 --设置连接数据库的编码
- greendao操作数据库升级导致表数据丢失
- 升级Android应用程序的思路-对数据库的操作(保留数据)
- Android 数据库综述(一) 数据库片的升级与数据的迁移操作
- 在从paradox的数据库文件db中的数据导出或显示出来的时候,有的中文字符变为乱码?
- 关于NTKO_office的操作(从数据库中提取数据,写入到NTKO_office_Word中)
- Spring使用JdbcTemplate操作数据库---使用RowCallbackHander读数据篇
- SQL Artisan基于条件驱动的数据操作例程介绍(1)
- 乱码问题(2):如何把原有数据库的GBK作内码的数据转成UTF-8?
- Spring使用JdbcTemplate操作数据库---写数据篇
- JSP数据库操作例程 - 数据分页显示
- Atlas入门-将普通控件升级为Atlas控件/使用listView显示数据库数据[视频]