IT博客汇
  • 首页
  • 精华
  • 技术
  • 设计
  • 资讯
  • 扯淡
  • 权利声明
  • 登录 注册

    [原][Bug]使用ST_Intersection函数报:ORA-06530: Reference to uninitialized composite

    linghe301发表于 2015-02-05 09:45:15
    love 0

    导语

    今天测试一个ST_Geometry的试验,使用了ST_Intersection函数,获得两个图层的相交部分,在执行过程中报:ORA-06530: Reference to uninitialized composite

    分析

    查找了Esri的官方技术文章,竟然是一个bug。

    Bug NIM-101461

    Bug Number NIM101461
    Submitted May 7, 2014 2:55 PM
    Severity Medium
    Applies To No Product Found
    Version Found 10.2
    Prog Language N/A
    Server Platform
    Client Platform
    Database All
    Locale N/A
    Status Open: Assigned
    Version Fixed N/A
    SP Fixed N/A

    Synopsis

    When feature classes with different SRIDs are used in an ST_intersection query, it fails with the message “ORA-06530: Reference to uninitialized composite.”

    Additional Status Information

    N/A

    Alternate Solution

    Manually use ‘st_transform':

    SQL> SELECT SDE.ST_AsText(SDE.ST_Intersection(sde.st_transform(a.shape,300003), b.shape)) FROM ani3 a, ani4 b;

    SDE.ST_ASTEXT(SDE.ST_INTERSECTION(SDE.ST_TRANSFORM(A.SHAPE,300003),B.SHAPE))
    ——————————————————————————–
    POINT ( -117.38861502 34.41554692)

    但是我的数据明明是同一个投影信息啊,通过数据库查询,结果发现不一致,具体原因详见
    为什么相同的投影坐标系存储在ArcSDE中获得SRID不一致

    结论

    通过这个bug可以看出,目前ST_Intersection函数还不支持投影不一致的情况,严格意义上讲,ArcSDE里面的要素类的SRID必须一致才可以。

    问题出来了,我们就把他解决掉吧!

    如果是出现我上面链接的问题,你可以将这两个数据放在一个数据集下,这样肯定可以保证投影一致。

    要么进行手动的投影转换,保证一致即可。



沪ICP备19023445号-2号
友情链接