SDO_GEOMETRY错误13348 [Element< 1>] [Ring< 1>],ora-13348

时间:2017-08-17 10:07:52

标签: oracle spatial oracle-spatial

我有一个查询,返回错误13348 [元素< 1>] [Ring< 1>]

select sdo_geom.validate_geometry_with_context (SDO_GEOMETRY(2003, 32638, null, SDO_ELEM_INFO_ARRAY(1,1003,1, 123,2003,1),
SDO_ORDINATE_ARRAY(503155.9729, 4545931.3636, 503141.2136, 4545929.3680, 503120.7778, 4545890.0976, 503120.5720, 4545869.2721, 
503120.5720, 4545846.1102, 503115.0572, 4545828.4628, 503107.3365, 4545820.7423, 503105.1307, 4545799.7861, 503085.2776, 4545788.7565, 
503066.5272, 4545774.4181, 503063.7454, 4545752.8579, 503053.2918, 4545740.2265, 503051.0860, 4545718.1675, 503021.3061, 4545643.1667,
 503002.5557, 4545606.7692, 502984.1996, 4545579.2346, 502958.4378, 4545545.0038, 502957.3349, 4545521.8417, 502950.7171, 4545493.1648,
 502944.8510, 4545482.3126, 502946.1332, 4545483.6864, 502966.1585, 4545500.6307, 503002.0277, 4545530.9815, 503031.8558, 4545572.0962,
 503040.7238, 4545563.2283, 503045.0232, 4545524.5323, 503060.0716, 4545494.4353, 503064.3714, 4545434.2415, 503072.9704, 4545346.1006,
 503077.2699, 4545309.5543, 503083.7193, 4545294.5056, 503107.6265, 4545285.9675, 503105.9029, 4545295.7362, 503097.0790, 4545351.9868, 
503095.9761, 4545377.3547, 503105.9029, 4545410.4434, 503109.2116, 4545450.1496, 503109.2116, 4545477.7236, 503108.1086, 4545527.3564, 
503107.0057, 4545546.1067, 503095.9761, 4545559.3421, 503088.2555, 4545576.9894, 503102.5938, 4545579.1952, 503104.7997, 4545606.7692, 
503088.2555, 4545628.8282, 503080.5348, 4545648.6813, 503079.4317, 4545671.8434, 503080.5348, 4545708.2408, 503091.5643, 4545740.2265, 
503102.5938, 4545771.1093, 503122.4471000010, 4545785.4476, 503152.2268, 4545801.9919, 503162.1534, 4545829.5659, 503165.4623, 4545859.3456,
 503167.6682, 4545885.8165, 503177.5947, 4545881.4047, 503204.0656, 4545876.9928, 503228.3306, 4545873.6840, 503243.7720, 4545873.6840,
 503259.2134, 4545885.8165, 503276.8605, 4545901.2578, 503288.2421, 4545903.2663, 503298.8938, 4545935.9514, 503272.4488, 4545936.5523,
 503254.8015, 4545925.5229, 503231.6395, 4545912.2874, 503218.7349, 4545921.1109, 503207.7054, 4545929.9346, 503196.6759, 4545938.7583, 
503175.7196, 4545945.3760, 503166.8961, 4545944.2730, 503155.9729, 4545931.3636,

494122.3421, 4546309.1762, 494141.8681, 4546318.6243, 494152.5760, 4546337.5203, 494150.0564, 
4546361.4553, 494138.7187, 4546380.9813, 494124.5329, 4546393.4604, 494124.3262, 4546393.7363, 494111.6344, 4546386.7131, 
494083.5899, 4546353.5178, 494075.7316, 4546341.9923, 494071.1720, 4546333.6315, 494084.1080, 4546338.4824, 494095.4270, 
4546338.4824, 494106.7460, 4546323.9296, 494109.3666, 4546315.5439, 494115.4135, 4546311.6956, 494122.3421, 4546309.1762
)), 0.05) from dual;

有两个多边形,当我只选择一个工作并返回true时, 有问题SDO_ELEM_INFO_ARRAY,我现在不知道怎么写得正确 请帮助我,并解释如何添加第三,第四......多边形

1 个答案:

答案 0 :(得分:0)

几何体中有三个错误:

  1. 第二个环(2003)的偏移量不正确。它应该是145,而不是123
  2. 第二个戒指不是内圈。它应该是1003
  3. sdo_gtype应该是多边形的2007(不是2003)。
  4. 像这样:

    select sdo_geom.validate_geometry_with_context (
      SDO_GEOMETRY(
        2007, 32638, null, 
        SDO_ELEM_INFO_ARRAY(1,1003,1, 145,1003,1),
        SDO_ORDINATE_ARRAY(
          503155.9729, 4545931.3636, 503141.2136, 4545929.3680, 503120.7778, 4545890.0976, 503120.5720, 4545869.2721, 503120.5720, 4545846.1102, 
          503115.0572, 4545828.4628, 503107.3365, 4545820.7423, 503105.1307, 4545799.7861, 503085.2776, 4545788.7565, 503066.5272, 4545774.4181, 
          503063.7454, 4545752.8579, 503053.2918, 4545740.2265, 503051.0860, 4545718.1675, 503021.3061, 4545643.1667, 503002.5557, 4545606.7692, 
          502984.1996, 4545579.2346, 502958.4378, 4545545.0038, 502957.3349, 4545521.8417, 502950.7171, 4545493.1648, 502944.8510, 4545482.3126, 
          502946.1332, 4545483.6864, 502966.1585, 4545500.6307, 503002.0277, 4545530.9815, 503031.8558, 4545572.0962, 503040.7238, 4545563.2283, 
          503045.0232, 4545524.5323, 503060.0716, 4545494.4353, 503064.3714, 4545434.2415, 503072.9704, 4545346.1006, 503077.2699, 4545309.5543, 
          503083.7193, 4545294.5056, 503107.6265, 4545285.9675, 503105.9029, 4545295.7362, 503097.0790, 4545351.9868, 503095.9761, 4545377.3547, 
          503105.9029, 4545410.4434, 503109.2116, 4545450.1496, 503109.2116, 4545477.7236, 503108.1086, 4545527.3564, 503107.0057, 4545546.1067, 
          503095.9761, 4545559.3421, 503088.2555, 4545576.9894, 503102.5938, 4545579.1952, 503104.7997, 4545606.7692, 503088.2555, 4545628.8282, 
          503080.5348, 4545648.6813, 503079.4317, 4545671.8434, 503080.5348, 4545708.2408, 503091.5643, 4545740.2265, 503102.5938, 4545771.1093, 
          503122.4471, 4545785.4476, 503152.2268, 4545801.9919, 503162.1534, 4545829.5659, 503165.4623, 4545859.3456, 503167.6682, 4545885.8165, 
          503177.5947, 4545881.4047, 503204.0656, 4545876.9928, 503228.3306, 4545873.6840, 503243.7720, 4545873.6840, 503259.2134, 4545885.8165, 
          503276.8605, 4545901.2578, 503288.2421, 4545903.2663, 503298.8938, 4545935.9514, 503272.4488, 4545936.5523, 503254.8015, 4545925.5229, 
          503231.6395, 4545912.2874, 503218.7349, 4545921.1109, 503207.7054, 4545929.9346, 503196.6759, 4545938.7583, 503175.7196, 4545945.3760, 
          503166.8961, 4545944.2730, 503155.9729, 4545931.3636, 
          494122.3421, 4546309.1762, 494141.8681, 4546318.6243, 494152.5760, 4546337.5203, 494150.0564, 
          4546361.4553, 494138.7187, 4546380.9813, 494124.5329, 4546393.4604, 494124.3262, 4546393.7363, 494111.6344, 4546386.7131, 
          494083.5899, 4546353.5178, 494075.7316, 4546341.9923, 494071.1720, 4546333.6315, 494084.1080, 4546338.4824, 494095.4270, 
          4546338.4824, 494106.7460, 4546323.9296, 494109.3666, 4546315.5439, 494115.4135, 4546311.6956, 494122.3421, 4546309.1762
        )
      ), 
      0.05
    ) from dual;
    

    不确定你的意思"如何添加第三个,第四个... n个多边形"。您是否需要构建具有大量元素的多边形对象?

    为了清楚你的目标是填充一个包含许多对象的表(例如许多地块),然后每个对象插入一行(=一个sdo_geometry)。你不要将它们全部放在一个sdo_geometry对象中。

    你能解释一下你想要实现的目标吗?

相关问题