카테고리 없음
spatial index 다시 생성하기
숲별
2024. 9. 2. 16:06
728x90
import해오는 과정에서 3857좌표계가 없어서 에러가 났었음
SELECT *
FROM MDSYS.CS_SRS
WHERE SRID = 3857;
-- SRID 3857 레코드 업데이트
UPDATE MDSYS.CS_SRS
SET CS_NAME = 'Google Projection',
AUTH_SRID = 3857,
WKTEXT = 'PROJCS["Google Projection", GEOGCS [ "WGS 84", DATUM ["WGS 84", SPHEROID ["Popular Visualisation Sphere", 6378137, 0]], PRIMEM["Greenwich",0], UNIT["Decimal Degree",0.0174532925199433]], PROJECTION["Mercator"], PARAMETER["Standard_Parallel_1",0], PARAMETER["Central_Meridian",0], PARAMETER["False_Easting",0], PARAMETER["False_Northing",0], UNIT["Meter",1]]'
WHERE SRID = 3857;
COMMIT;
3857좌표계 추가해줬는데
좌표계없는 상태에서 이미 만들어진 index들이 유명무실했다.
SELECT *
FROM USER_INDEXES
WHERE 1=1
AND table_name = 'KBT';
-- 기존 인덱스 삭제
DROP INDEX "CB"."KBT_SX_GIS";
-- 인덱스 새로 만들기
CREATE INDEX "CB"."KBT_SX_GIS" ON "CB"."KBT" ("GIS")
INDEXTYPE IS "MDSYS"."SPATIAL_INDEX" PARAMETERS ('layer_gtype=POINT');
혹시 index도 기존 index와 같게 만드는 거라 DDL문 조회하고 싶다면
SELECT DBMS_METADATA.GET_DDL('INDEX', 'KBT_SX_GIS', 'CB')
FROM DUAL;
+metadata랑은 다 만들어져있다고 가정하고 위에 꺼만 한거임.
SELECT *
FROM USER_tab_columns
WHERE 1=1
AND table_name = 'KBT'
AND data_type= 'SDO_GEOMETRY';
SELECT *
FROM USER_SDO_GEOM_METADATA
WHERE 1=1
AND table_name = 'KBT';
SELECT *
FROM USER_INDEXES
WHERE 1=1
AND table_name = 'KBT';
혹시 위에 없으면 넣어줘야함.