[发明专利]一种Oracle传输压缩数据还原方法有效
| 申请号: | 201410381264.6 | 申请日: | 2014-08-05 |
| 公开(公告)号: | CN104320374B | 公开(公告)日: | 2017-06-27 |
| 发明(设计)人: | 李绍平;范渊 | 申请(专利权)人: | 杭州安恒信息技术有限公司 |
| 主分类号: | H04L29/06 | 分类号: | H04L29/06 |
| 代理公司: | 杭州中成专利事务所有限公司33212 | 代理人: | 周世骏 |
| 地址: | 310051 浙江省杭*** | 国省代码: | 浙江;33 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 一种 oracle 传输 压缩 数据 还原 方法 | ||
技术领域
本发明是关于网络数据传输领域,特别涉及一种Oracle传输压缩数据还原方法。
背景技术
目前很多行业都在使用Oracle数据库,在某些情况下使用SQL语句获取结果集时,结果集中存在大量相同的数据,如果这些相同的数据只传输一次,那么可以大大减小网络传输数据量。
一般SQL语句返回的结果集数据中,部分记录的部分内容会存在相同的数据。经分析大部分关系型数据库(如SQL Server、DB2、MySQL等),对结果集中每行数据如实传输(记录间的相同数据在每条记录中会重复的传输),这无疑增加网络的传输量。
发明内容
本发明的主要目的在于克服现有技术中的不足,提供一种能正确提取压缩信息、正确还原被压缩的数据、正确提取非压缩数据的Oracle传输压缩数据还原方法。为解决上述技术问题,本发明的解决方案是:
提供一种Oracle传输压缩数据还原方法,具体包括下述步骤:
(1)利用数据库类型识别定位器,对传输的数据包进行判断是否符合TNS通信协议的协议头格式,若符合TNS通信协议的协议头格式,则传输的数据包符合TNS通信协议,即传输的数据包是Oracle数据库传输的数据包;若不符合TNS通信协议的协议头格式,则传输的数据包不符合TNS通信协议,将传输的数据包舍弃;
其中,所述TNS通信协议是Oracle数据库通信的协议,是TCP/IP协议的应用层数据协议;TNS通信协议中包括协议头,协议头由8个字节组成,依次为2字节的长度、2字节的校验、1字节的包类型、1字节的保留字节、2字节的头校验;
(2)利用压缩信息定位及内容提取器,确定步骤(1)识别出的数据包中的记录是否被压缩,实现压缩信息的定位,并对定位出的压缩信息进行提取;
压缩信息定位的具体方法为:根据TTC协议,从通过数据库类型识别定位器选择出的数据包中,寻找TTC协议头是0x15的位置,若没有找到0x15的TTC协议头,则舍弃;若找到0x15的TTC协议头,则说明TTC协议头之后的数据内容是压缩相关信息,实现压缩信息定位;
压缩信息内容提取器具体方法为:根据压缩信息定位器找到的位置,提取TTC协议头为0x15之后的两个字节的数据,这两个字节的内容的间接表示下面压缩标识信息的长度,长度值设为X;压缩标识信息的长度计算方法如下:X除以8取整,得到的值设为Z,如X除8有余数则压缩标识信息的长度为Z+1个字节组成,如X除8没有余数则压缩标识信息的长度为Z个字节组成;
所述压缩标识信息的具体格式:1字节(8比特)最多能存放结果集1行中8列内容的压缩标识信息(若1行有超过8列的内容,则增加字节存放其他列的压缩标识信息),即1比特能用来表示结果集1行中1列内容是否被压缩;若比特值为1,则表示对应数据没有被压缩;若比特值为0,则表示对应数据被压缩;
其中,Oracle数据库传输的数据包采用的是TNS通信协议,TNS通信协议内部包含TTC协议,所述TTC协议头由1个字节组成,TTC协议头的值用于表示TTC协议头之后的数据包含的内容(如TTC协议头是0x15,其后内容是压缩标识信息);
结果集是执行SQL语句(主要是select语句)返回的内容,结果集是由行和列构成的一张二维表格,一行数据表示一条完整的记录,一条记录的TTC协议头是0x07,且根据TNS通信协议规定,结果集的第一条记录不存在压缩信息;一条记录的还原要依据压缩信息来还原;
(3)根据TTC协议,利用结果集信息定位器,从步骤(1)中通过数据库类型识别定位器识别出的数据包中,找到TTC协议头是0x07的位置,实现结果集信息的定位;然后内容还原器根据结果集信息定位器定位出的位置,提取结果集信息,具体提取方法为:结合压缩信息定位及内容提取器对数据包进行逐条定位,若某列的压缩信息为1(压缩信息定位器及内容提取器提取的压缩信息),则该列内容没有被压缩,说明结果集信息定位器之后的内容有这列的信息数据,则提取这列内容;若某列的压缩信息为0(压缩信息定位器及内容提取器提取的压缩信息),则该列内容被压缩,说明结果集信息定位器之后的内容没有这列的信息数据,则将上一条记录的对应列作为这列的信息;
(4)如果结果集的记录还没提取完,判断结果集的记录提取完成依据是:TTC协议头是0x04的内容部分含有no data found字样;依次重复步骤(2)和步骤(3);
(5)利用输出结果集系统,把结果集的记录逐条组装成二维表格,并进行输出。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于杭州安恒信息技术有限公司,未经杭州安恒信息技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201410381264.6/2.html,转载请声明来源钻瓜专利网。
- 数据显示系统、数据中继设备、数据中继方法、数据系统、接收设备和数据读取方法
- 数据记录方法、数据记录装置、数据记录媒体、数据重播方法和数据重播装置
- 数据发送方法、数据发送系统、数据发送装置以及数据结构
- 数据显示系统、数据中继设备、数据中继方法及数据系统
- 数据嵌入装置、数据嵌入方法、数据提取装置及数据提取方法
- 数据管理装置、数据编辑装置、数据阅览装置、数据管理方法、数据编辑方法以及数据阅览方法
- 数据发送和数据接收设备、数据发送和数据接收方法
- 数据发送装置、数据接收装置、数据收发系统、数据发送方法、数据接收方法和数据收发方法
- 数据发送方法、数据再现方法、数据发送装置及数据再现装置
- 数据发送方法、数据再现方法、数据发送装置及数据再现装置





