最近由于项目需求,要实现Oracle数据源,主要是Oracle Spatial 。虽然之前写过PostGIS和Sqlite的,但是对Oracle基本上算一无所知。刚开始接触的那几天,头都大了,Oracle里面的东西分的太细了,有些东西都不知道去哪找。为了使用Oracle中的mapview,费了半天总算配置成功了,结果使用起来不够人性化,那个⊙﹏⊙b汗。

看了一堆英文材料对Oracle Spatial才算有了点了解,开始动手编码了。写完一些基本的空间数据的增删改查,以为差不多了,因为之前也写过另外两个数据源的,Sql语法也差不多,写起来还算轻车熟路。满怀希望单元测试都OK,结果刚测一个Insert,就一直报错(+_+),ORA-1461:仅能绑定要插入LONG列的LONG值。查看一下数据库表,里面根本就没有Long类型字段,将sql语句直接放到SQL/Plus中运行,又改抛ORA-01704:文字字符串过长。在网上寻觅了一下发返现,原来Oracle SQL语句长度不能超过4000字节,囧o(╯□╰)o。原来我在写插入语句时直接将Geometry对象转化为WKT格式,使用SDO_Geomtry(wkt clob,srid number default Null)方法,而测试用的一个polygon对象就超过4000了,泪奔了~~~~(>_

OracleParameter tempPara = new OracleParameter();

tempPara.ParameterName = paramName;

tempPara.OracleDbType = OracleDbType.Clob;

tempPara.Direction = ParameterDirection.Input;

OracleClob clob = new OracleClob(orclConn);//设定为Clob,orclConn     为OracleConnection实例

clob.Write((paraValue as string).ToCharArray(), 0, (paraValue as    string).ToCharArray().Length);//paraValue为变量实际值

tempPara.Value = clob;

orclComm.Parameters.Add(tempPara);//orclComm:OracleCommand实例

测试一下,顺利过关,O(∩_∩)O~。

顺便说一下,使用Oracle提供的数据访问组件(Oracle.DataAccess.dll)时要安装Oracle 客户端,及ODP,并且要注意ODP和Oracle的版本问题,之前没有注意,就出现了一堆问题。

Oracle Spatial用了一下,还是很强大的。从中学到了不少东西,虽然过程是痛苦的~~

转载自:https://blog.csdn.net/hquangelina/article/details/5669598

oracle和arcgis优势,Oracle spatial 使用的一些感受相关推荐

  1. arcgis读取oracle数据库,arcgis连接Oracle数据库

    arcgis连接Oracle数据库 配置声明:本人的电脑是win10 64位,安装的Oracle是oracleR11gr2 64  arcgis版本位10.2 安装是在同一台电脑上. 一.首先是安装O ...

  2. arcgis oracle trace,ArcGIS应用Oracle Spatial特征分析

    该文章并不是将Oracle  Spatial与ST_Geometry做对比,关于两者的对比,可以参考:http://www.linuxidc.com/Linux/2011-10/45492.htm,这 ...

  3. C#连接Oracle数据库的方法(Oracle.DataAccess.Client也叫ODP.net)

    官方下载地址(ODP.net)(中文):http://www.oracle.com/technetwork/cn/topics/dotnet/downloads/index.html 官方下载地址(O ...

  4. oracle 10g进入ascmd,oracle 10g 默许用户名密码及解锁

    当前位置:我的异常网» 数据库 » oracle 10g 默许用户名密码及解锁 oracle 10g 默许用户名密码及解锁 www.myexceptions.net  网友分享于:2013-07-28 ...

  5. oracle 28000错误码,Oracle数据库 ORA-28000 错误处理方式

    Oracle数据库ORA-28000错误处理方式 ORA-28000:the account is locked-的解决办法 ORA-28000:the account is locked 第一步:使 ...

  6. oracle客户端查看版本号,Oracle 版本查看及版本号说明

    select * from v$version; 结果如下: BANNER 1 Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - ...

  7. oracle ko16mswin949,PRM DUL Oracle数据库恢复的最后一步

    PRM-DUL是一种Oracle数据抽取工具(data unloader for Oracle),其具备跳过Oracle数据库引擎,直接从块级别抽取数据行的能力. 基于此工具,无需数据库实例能够打开数 ...

  8. oracle连续月份列表,Oracle实现查询2个日期所跨过的月份列表/日期列表的方法分析...

    Oracle实现查询2个日期所跨过的月份列表/日期列表的方法分析 本文实例讲述了Oracle实现查询2个日期所跨过的月份列表/日期列表的方法.分享给大家供大家参考,具体如下: 1.基本逻辑公式: Se ...

  9. oracle中正则表达式规则,Oracle SQL 正则表达式

    From:http://blog.sina.com.cn/s/blog_69e7b8d701012tuj.html 在oracle数据库当中有字符处理的函数,比如substr().replace()和 ...

最新文章

  1. 手撸一个JdbcTemplate,带你了解其原理
  2. 西南这座城,脸,比北上广还有用
  3. java 页面错误转发提示页面 errorPage转跳报HTTP500内部服务器错误
  4. Android客户端打包方案分享
  5. 不会webpack的前端可能是捡来的,万字总结webpack的超入门核心知识
  6. 世界杯迄今最火的一场比赛 一文看懂世界杯背后的阿里云黑科技
  7. Lync和Exchange 2013集成PART1:准备所需证书
  8. poj1083 解题报告(poj 1083 analysis report)
  9. 共享内存shared pool (3):Library cache
  10. spring源码系列(一)sring源码编译 spring源码下载 spring源码阅读
  11. spring 事务传播机制总结
  12. 利用ace.js编写一个JavaScript编辑器(带智能补全)
  13. 程序测试包含哪些内容?
  14. 品牌故事宣传片制作要点
  15. stata面板数据单位根检验llc_stata面板单位根检验怎样看结果?LLC、ADF_Fisher以及IPS,求助...
  16. .NET下使用snappy
  17. 2440串口linux编程,S3C2440串口通讯的相关配置
  18. php msvcr110,msvcr110.dll丢失的解决方法是什么
  19. 你的走路姿势正确吗?步态不对牵连多种疾病
  20. 猫哥教你写爬虫 027--模块介绍

热门文章

  1. VMware CTO:未来VMware NSX与思科ACI将有更多整合
  2. 基于WeUI的Angular2开发
  3. JAVA命令行编译及运行
  4. uva 11468 - Substring(AC自己主动机+概率)
  5. linq查询语句转mongodb
  6. javascript之判断专题
  7. 添加删除一个controller
  8. 在xcode调试断点不能停在代码区的终极解决方案
  9. Microsoft Hyper-V Server 2008 R2和SCVMM2012部署XenDesktop 5.6桌面虚拟化系列之三准备XenDesktop服务器...
  10. 介绍最新大片——程序员必看!