System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind() 一种数据库中转换Oracle空间数据为postgresql空间数据的方法及系统技术方案_技高网

一种数据库中转换Oracle空间数据为postgresql空间数据的方法及系统技术方案

技术编号:41126217 阅读:2 留言:0更新日期:2024-04-30 17:53
本申请公开了一种数据库中转换Oracle空间数据为postgresql空间数据的方法及系统,包括如下步骤:根据空间数据类型SDO_GTYPE子项,获取空间对象的维度信息和对象的类型;根据获取的空间对象的维度信息和对象的类型,基于元素属性SDO_ELEM_INFO子项,确定对象的数据类型;根据SDO_ELEM_INFO子项的元组读出空间对象点信息SDO_ORDINATES子项指定属性的值,并根据读取的指定属性的值以及SDO_GTYPE子项按照postgresql数据库支持的数据类型进行组合,以完成转换。本申请能够直接将Oracle空间数据转换为postgresql空间数据。

【技术实现步骤摘要】

本申请涉及数据库,尤其涉及一种数据库中转换oracle空间数据为postgresql空间数据的方法及系统。


技术介绍

1、postgresql和oracle是两大主流支持空间数据的数据库,异构数据库表示空间数据的方式存在差异。目前国产数据库大部分在postgresql基础上开发的,加之政策对国产数据库的支持所以将oracle空间数据转化到postgresql空间数据已成为gis数据迁移的迫切需求。由于国内对空间数据的研究起步较晚,通常需要将数据转换为中间格式(如shapefile等格式)再导入postgresql中,导致存储效率低,多了中间转换的过程在处理大规模或复杂数据时使效率降低。

2、现有技术无法实现直接、有效地将oracle空间数据转换为postgresql空间数据,目前待解决该技术问题。


技术实现思路

1、本申请实施例提供一种数据库中转换oracle空间数据为postgresql空间数据的方法及系统,用以实现直接的将oracle空间数据转换为postgresql空间数据。

2、本申请实施例提供一种数据库中转换oracle空间数据为postgresql空间数据的方法,其根据oracle空间数据的sdo_geometry数据结构的多个子项来完成转换,包括如下步骤:

3、根据空间数据类型sdo_gtype子项,获取空间对象的维度信息和对象的类型;

4、根据获取的空间对象的维度信息和对象的类型,基于元素属性sdo_elem_info子项,确定对象的数据类型;

5、根据sdo_elem_info子项的元组读出空间对象点信息sdo_ordinates子项指定属性的值,并根据读取的指定属性的值以及sdo_gtype子项按照postgresql数据库支持的数据类型进行组合,以完成转换。

6、可选的,还包括:基于获取的空间对象的维度信息和对象的类型,根据坐标系标识sdo_srid子项,确定空间对象的坐标系信息。

7、可选的,根据读取的指定属性的值以及sdo_gtype子项按照postgresql数据库支持的数据类型进行组合包括:

8、基于sdo_elem_info子项与sdo_gtype子项的组合,来确定空间对象的具体类型;以及,

9、根据sdo_elem_info子项的元组读取到的指定属性的值、sdo_ordinates子项以及sdo_gtype子项,按照postgresql数据库支持的数据类型进行组合,来形成完整的空间对象。

10、可选的,根据sdo_elem_info子项的元组读出空间对象点信息sdo_ordinates子项指定属性的值包括:

11、根据sdo_elem_info子项的元组读出sdo_ordinates子项sdo_ordinates(number数组)属性的值。

12、可选的,根据空间数据类型sdo_gtype子项,获取空间对象的维度信息和对象的类型之后还包括,将获取的空间对象的维度信息和对象的类型对应至postgresql的空间类型。

13、可选的,还包括检查sdo_geometry子项中的sdo_point属性,并在属性值为指定值的情况下,将sdo_point属性对应为postgresql的pioint对象。

14、本申请实施例还提出一种数据库中转换oracle空间数据为postgresql空间数据的系统,包括处理器和存储器,所述存储器上存储有计算机程序,所述计算机程序被处理器执行时实现如前述转换oracle空间数据为postgresql空间数据的方法的步骤。

15、本申请实施例根据oracle空间数据的sdo_geometry数据结构的多个子项来完成转换,能够不使用第三方工具而直接的将oracle空间数据转换为postgresql空间数据。

16、上述说明仅是本申请技术方案的概述,为了能够更清楚了解本申请的技术手段,而可依照说明书的内容予以实施,并且为了让本申请的上述和其它目的、特征和优点能够更明显易懂,以下特举本申请的具体实施方式。

本文档来自技高网...

【技术保护点】

1.一种数据库中转换Oracle空间数据为postgresql空间数据的方法,其特征在于,其根据Oracle空间数据的SDO_GEOMETRY数据结构的多个子项来完成转换,包括如下步骤:

2.如权利要求1所述的数据库中转换Oracle空间数据为postgresql空间数据的方法,其特征在于,还包括:基于获取的空间对象的维度信息和对象的类型,根据坐标系标识SDO_SRID子项,确定空间对象的坐标系信息。

3.如权利要求2所述的数据库中转换Oracle空间数据为postgresql空间数据的方法,其特征在于,根据读取的指定属性的值以及SDO_GTYPE子项按照postgresql数据库支持的数据类型进行组合包括:

4.如权利要求1所述的数据库中转换Oracle空间数据为postgresql空间数据的方法,其特征在于,根据SDO_ELEM_INFO子项的元组读出空间对象点信息SDO_ORDINATES子项指定属性的值包括:

5.如权利要求1所述的数据库中转换Oracle空间数据为postgresql空间数据的方法,其特征在于,根据空间数据类型SDO_GTYPE子项,获取空间对象的维度信息和对象的类型之后还包括,将获取的空间对象的维度信息和对象的类型对应至postgresql的空间类型。

6.如权利要求1所述的数据库中转换Oracle空间数据为postgresql空间数据的方法,其特征在于,还包括检查SDO_GEOMETRY子项中的SDO_POINT属性,并在属性值为指定值的情况下,将SDO_POINT属性对应为postgresql的PIOINT对象。

7.一种数据库中转换Oracle空间数据为postgresql空间数据的系统,其特征在于,包括处理器和存储器,所述存储器上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至6中任一项所述转换Oracle空间数据为postgresql空间数据的方法的步骤。

...

【技术特征摘要】

1.一种数据库中转换oracle空间数据为postgresql空间数据的方法,其特征在于,其根据oracle空间数据的sdo_geometry数据结构的多个子项来完成转换,包括如下步骤:

2.如权利要求1所述的数据库中转换oracle空间数据为postgresql空间数据的方法,其特征在于,还包括:基于获取的空间对象的维度信息和对象的类型,根据坐标系标识sdo_srid子项,确定空间对象的坐标系信息。

3.如权利要求2所述的数据库中转换oracle空间数据为postgresql空间数据的方法,其特征在于,根据读取的指定属性的值以及sdo_gtype子项按照postgresql数据库支持的数据类型进行组合包括:

4.如权利要求1所述的数据库中转换oracle空间数据为postgresql空间数据的方法,其特征在于,根据sdo_elem_info子项的元组读出空间对象点信息sdo_ordinates子项指定属性...

【专利技术属性】
技术研发人员:王承祥王大鹏左晨威苗健吕新杰
申请(专利权)人:瀚高基础软件股份有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1