博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
利用st_geometry将几百万条数据的普通数据库表转换成图形表
阅读量:6952 次
发布时间:2019-06-27

本文共 1421 字,大约阅读时间需要 4 分钟。

hot3.png

思路:通过oracle命令行执行sql,一次性通过insert语句插入1000条数据,到1W条数据后提交。

关键语句

INSERT INTO GIS.TESTPOINT(OBJECTID, SHAPE)  SELECT OBJECTID, SDE.ST_POINT(X, Y, 9)    FROM PT T

具体语句

--- 黏贴到命令窗口,输入/回车 运行 set serveroutput on    Declare      cnt            number(10);--初始OBJECTID值      ncnt            number(10);--每次插入的行数      v_msg      varchar(2000);--错误信息    begin          cnt := 1;          ncnt:= cnt+1000;          loop                begin         INSERT INTO GIS.TESTPOINT     (OBJECTID,SHAPE)     SELECT OBJECTID,            SDE.ST_POINT(X, Y, 9)       FROM PT T      WHERE OBJECTID > cnt AND OBJECTID < ncnt;                      if mod(cnt, 10000) = 0 then --1W条数据后提交                      insert into log_info VALUES(cnt,OBJECTID,SYSDATE); --记录提交信息                        commit;                      end if;                exception                when others then                  rollback;                  v_msg := sqlcode||':'||sqlerrm;                  --将异常记录做日志                  insert into log_info VALUES(cnt,v_msg,SYSDATE);                   commit;                end;                 cnt := ncnt;                ncnt:= cnt+1000;                if cnt > 188481666 then -全部转换完毕                  exit;                end if;            end loop;          commit;          dbms_output.put_line('转换完毕');    end;

这种转换比较耗时,六百多万的数据花了三天时间吧,也有可能是因为objectid不是递增的原因到时慢了许多。但是比写程序方便多了。

转载于:https://my.oschina.net/u/351612/blog/731848

你可能感兴趣的文章
Linux下清理内存和Cache方法
查看>>
表单元素的外观改变(webkit and IE10)
查看>>
帆软报表学习笔记②——行转列
查看>>
redis应用场景:实现简单计数器-防止刷单
查看>>
两款开发辅助工具介绍
查看>>
python 文件的打开与读取
查看>>
基于ROS的运动识别
查看>>
python 之selectors 实现文件上传下载
查看>>
【hdu - 2568】ACM程序设计期末考试081230
查看>>
C语言基础(一)
查看>>
python处理xml中非法字符的一种思路
查看>>
itextSharp 附pdf文件解析
查看>>
solr6.0.0 + tomcat8 配置问题
查看>>
[leetcode-303-Range Sum Query - Immutable]
查看>>
LinkButton(按钮)
查看>>
leetcode Largest Rectangle in Histogram 单调栈
查看>>
Word Break II
查看>>
驱动lx4f120h,头文件配置,没有完全吃透,望指点
查看>>
caffe linux下面的调试mnist遇到的问题
查看>>
IOS的Application以及IOS目录的介绍
查看>>