[发明专利]一种实现Oracle数据库中文数据同步的方法及系统在审
申请号: | 202310405492.1 | 申请日: | 2023-04-17 |
公开(公告)号: | CN116401316A | 公开(公告)日: | 2023-07-07 |
发明(设计)人: | 李钦格;马良;李军 | 申请(专利权)人: | 山东浪潮智慧医疗科技有限公司 |
主分类号: | G06F16/27 | 分类号: | G06F16/27;G06F16/25;G06F9/54 |
代理公司: | 济南信达专利事务所有限公司 37100 | 代理人: | 陈婷婷 |
地址: | 250100 山东省济南市中国(山东)自由贸易试验*** | 国省代码: | 山东;37 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 实现 oracle 数据库 中文 数据 同步 方法 系统 | ||
1.一种实现Oracle数据库中文数据同步的方法,其特征在于,基于字符转换逻辑,将US7ASCII编码方式的中文以16进制ASCII的字符取出;
转换成标准的传输格式,借助消息中间件,将oracle抽取的数据传输到入库组件服务器;
入库组件在接收到采集端传输的数据后,依据目的端数据库中文字符集的编码,将ASCII码进行转换,转换成和目的库相适应的中文编码;从而实现Oracle数据库的同步。
2.根据权利要求1所述的一种实现Oracle数据库中文数据同步的方法,其特征在于,该方法的实现过程如下:
1)、采集端获取Oracle数据库16进制ASCII形式的数据;
2)、采集端将采集到数据转换成标准格式,并推送到传输总线;
3)、入库组件从传输总线获取到标准格式的数据之后,对ASCII数据进行重新编码,如果目的端是GBK中文编码,则将ASCII数据转换成GBK编码格式的中文,如果目的端是UTF-8中文编码,则将ASCII数据转换成UTF-8格式的中文编码;入库后数据库的中文正常显示。
3.根据权利要求2所述的一种实现Oracle数据库中文数据同步的方法,其特征在于,所述采集端获取Oracle数据库16进制ASCII形式的数据,方式如下:
1.1)、通过SELECT USERENV('language')from dual获取数据库服务器的字符集编码;
1.2)、通过函数utl_raw.cast_to_raw将表中带有中文US7ASCII编码的字段内容转换成ASCII;
1.3)、通过RAWTOHEX函数将ASCII转换成16进制。
4.根据权利要求2或3所述的一种实现Oracle数据库中文数据同步的方法,其特征在于,所述将ASCII数据转换成GBK编码格式的中文,涉及的函数包括将英文字符转真实数字的函数,该函数将16进制形式的字符转换成对应10进制的数字。
5.根据权利要求4所述的一种实现Oracle数据库中文数据同步的方法,其特征在于,所述将ASCII数据转换成GBK编码格式的中文,涉及的函数还包括ASCII转GBK函数,该函数将ASCII码编码的汉字转换成GBK编码的汉字,用以解决汉字的乱码问题。
6.一种实现Oracle数据库中文数据同步的系统,其特征在于,包括采集模块、中心消息集群、入库模块,
采集模块从Oracle数据库源端抽取US7ASCII编码方式的中文,转换成16进制的ASCII字符;
入库模块接收到采集模块传输的数据,依据目的端数据库中文字符集的编码,将ASCII码进行转换,转换成和目的库相适应的中文编码。
7.根据权利要求6所述的一种实现Oracle数据库中文数据同步的系统,其特征在于,该系统实现Oracle数据库US7ASCII编码方式的中文数据同步过程如下:
1)、采集模块获取Oracle数据库16进制ASCII形式的数据;
2)、采集模块将采集到数据转换成标准格式,并推送到传输总线;
3)、入库模块从传输总线获取到标准格式的数据之后,对ASCII数据进行重新编码,如果目的端是GBK中文编码,则将ASCII数据转换成GBK编码格式的中文,如果目的端是UTF-8中文编码,则将ASCII数据转换成UTF-8格式的中文编码;入库后数据库的中文正常显示。
8.根据权利要求6所述的一种实现Oracle数据库中文数据同步的系统,其特征在于,所述采集模块从Oracle数据库源端抽取US7ASCII编码方式的中文,转换成16进制的ASCII字符过程如下:
1.1)、通过SELECT USERENV('language')from dual获取数据库服务器的字符集编码;
1.2)、通过函数utl_raw.cast_to_raw将表中带有中文US7ASCII编码的字段内容转换成ASCII;
1.3)、通过RAWTOHEX函数将ASCII转换成16进制。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于山东浪潮智慧医疗科技有限公司,未经山东浪潮智慧医疗科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202310405492.1/1.html,转载请声明来源钻瓜专利网。