我在地图上创建一个多边形并尝试将最相关的街道提取到该多边形。但是,当我的查询在多边形覆盖3-5个街道时起作用,当它覆盖更大的区域时,它会返回上述错误。我试图从我的查询中获取至少一个街道代码结果。我错过了什么?
SELECT ID FROM STREET WHERE CITY_STREET_CODE = (
SELECT
NS.CITY_STREET_CODE CITYSTREETCODE
FROM NEIGHBOURHOOD_STREET NS
INNER JOIN NEIGHBOURHOOD N
ON N.ID = NS.NEIGHBOURHOOD_ID
WHERE SDO_RELATE(N.GEOLOC,
MYGEOLOC,
'MASK=ANYINTERACT') = 'TRUE'
AND NS.CITY_STREET_CODE IN
(SELECT CITY_STREET_CODE
FROM (SELECT CITY_STREET_CODE, DISTANCE
FROM (SELECT
A.CITY_STREET_CODE, SDO_NN_DISTANCE(1) DISTANCE
FROM STREET A
WHERE SDO_NN(A.GEOLOC,
MYGEOLOC,
'SDO_BATCH_SIZE=10 DISTANCE=500 UNIT=M',
1) = 'TRUE'
AND A.CITY_STREET_CODE > 0
ORDER BY DISTANCE)
WHERE ROWNUM <= 1))
)
ps:我尝试降低和增加批量大小,我也试过把&#34; sdo_num_res&#34;而不是它;两个都没有工作,或者我无法正常工作。
答案 0 :(得分:1)
您的问题与空间扩展无关。问题是一个简单的SQL问题。你有:
$('#accepted-media').val(opts)
但是,子查询可以返回多行 - 因此错误。
最简单的解决方案是将WHERE CITY_STREET_CODE = ( . . . )
更改为=
:
IN