지도에서 다각형을 생성하고 해당 다각형에 가장 가까운 거리를 가져 오려고합니다. 그러나 다각형이 3-5 개의 거리를 포함 할 때 내 쿼리가 작동하는 동안 더 큰 영역을 다룰 때 언급 한 오류를 반환합니다. 나는 내 쿼리에서 적어도 하나의 거리 코드 결과를 얻으려고합니다. 내가 뭘 놓치고 있니?Oracle Spatial 쿼리는 ORA-01427을 제공합니다 (단일 행 하위 쿼리는 둘 이상의 행을 반환합니다).
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 : 배치 크기를 줄이거 나 늘리려고 시도했지만, 대신 "sdo_num_res"를 넣으려고했습니다. 둘 다 제대로 작동하지 못했습니다.
변경 :
가장 간단한 해결책은
=
IN
행을 변경하는 것이다. –거룩한 야옹, 고마워요! 내가 그것을 표시 할 수 있도록 응답으로 게시 할 수 있습니까? (그러나 조금 설명이 있습니다) – patateskafa