SnowConvert AI - Oracle - 공간 유형

설명

Oracle Spatial and Graph는 위치 기반 애플리케이션, 지리 정보 시스템(GIS) 애플리케이션, 지오이미징 애플리케이션 사용자가 공간 데이터 관리를 보다 쉽고 자연스럽게 수행할 수 있도록 설계되었습니다. (Oracle SQL언어 참조 공간 유형)

{ SDO_Geometry | SDO_Topo_Geometry |SDO_GeoRaster }

Copy

SDO_GEOMETRY

참고

출력 코드의 일부 부분은 명확성을 위해 생략되었습니다.

설명

공간 오브젝트의 기하학적 설명은 사용자 정의 테이블의 단일 행, 단일 열의 오브젝트 유형 SDO_GEOMETRY 에 저장됩니다. SDO_GEOMETRY 유형의 열이 있는 모든 테이블에는 해당 테이블의 고유한 기본 키를 정의하는 다른 열 또는 열 세트가 있어야 합니다. (Oracle SQL Language Reference SDO_GEOMETRY 데이터 타입)

SDO_GEOMETRY 오브젝트의 정의:

CREATE TYPE SDO_GEOMETRY AS OBJECT
  (sgo_gtype        NUMBER, 
   sdo_srid         NUMBER,
   sdo_point        SDO_POINT_TYPE,
   sdo_elem_info    SDO_ELEM_INFO_ARRAY,
   sdo_ordinates    SDO_ORDINATE_ARRAY);
/

Copy

SDO_GEOMETRY 오브젝트는 Snowflake에서 지원되지 않습니다. 이 데이터 타입의 해결 방법은 Snowflake GEOGRAPHY 를 사용하는 것이지만, 현재 SnowConvert 에서는 해당 변환이 지원되지 않습니다.

샘플 소스 패턴

Create Table의 SDO_GEOMETRY

Oracle
CREATE TABLE geometry_table(
    geometry_column SDO_GEOMETRY
);
Copy
Snowflake
CREATE OR REPLACE TABLE geometry_table (
        geometry_column GEOMETRY
    )
    COMMENT = '{"origin":"sf_sc","name":"snowconvert","version":{"major":1, "minor":0},{"attributes":{"component":"oracle"}}'
    ;
Copy

SDO_GEOMETRY 테이블에 데이터 삽입하기

Oracle
INSERT INTO geometry_table VALUES (
	SDO_GEOMETRY('POINT(-79 37)')
);

INSERT INTO geometry_table VALUES (
    SDO_GEOMETRY('LINESTRING(1 3, 1 5, 2 7)')
);

INSERT INTO geometry_table VALUES (
    MDSYS.SDO_GEOMETRY(
		2001,
		8307,
		MDSYS.SDO_POINT_TYPE (
			-86.13631,
			40.485424,
			NULL),
		NULL,
		NULL
	)
);

INSERT  INTO geometry_table VALUES (
SDO_GEOMETRY(
    2003,
    12,
    SDO_POINT_TYPE(12, 14, -5),
    SDO_ELEM_INFO_ARRAY(1,1003,3),
    SDO_ORDINATE_ARRAY(1,1, 5,7) 
  )
);

INSERT INTO geometry_table VALUES (
NULL);
Copy
Snowflake
INSERT INTO geometry_table
VALUES (
	SDO_GEOMETRY('POINT(-79 37)') !!!RESOLVE EWI!!! /*** SSC-EWI-0073 - PENDING FUNCTIONAL EQUIVALENCE REVIEW FOR 'SDO_GEOMETRY' NODE ***/!!!
);


INSERT INTO geometry_table
VALUES (
    SDO_GEOMETRY('LINESTRING(1 3, 1 5, 2 7)') !!!RESOLVE EWI!!! /*** SSC-EWI-0073 - PENDING FUNCTIONAL EQUIVALENCE REVIEW FOR 'SDO_GEOMETRY' NODE ***/!!!
);


INSERT INTO geometry_table
VALUES (
    MDSYS.SDO_GEOMETRY(
		2001,
		8307,
		MDSYS.SDO_POINT_TYPE (
			-86.13631,
			40.485424,
			NULL) !!!RESOLVE EWI!!! /*** SSC-EWI-0073 - PENDING FUNCTIONAL EQUIVALENCE REVIEW FOR 'MDSYS.SDO_POINT_TYPE' NODE ***/!!!,
		NULL,
		NULL
	) !!!RESOLVE EWI!!! /*** SSC-EWI-0073 - PENDING FUNCTIONAL EQUIVALENCE REVIEW FOR 'MDSYS.SDO_GEOMETRY' NODE ***/!!!
);

INSERT  INTO geometry_table
VALUES (
SDO_GEOMETRY(
    2003,
    12,
    SDO_POINT_TYPE(12, 14, -5) !!!RESOLVE EWI!!! /*** SSC-EWI-0073 - PENDING FUNCTIONAL EQUIVALENCE REVIEW FOR 'SDO_POINT_TYPE' NODE ***/!!!,
    SDO_ELEM_INFO_ARRAY(1,1003,3) !!!RESOLVE EWI!!! /*** SSC-EWI-0073 - PENDING FUNCTIONAL EQUIVALENCE REVIEW FOR 'SDO_ELEM_INFO_ARRAY' NODE ***/!!!,
    SDO_ORDINATE_ARRAY(1,1, 5,7) !!!RESOLVE EWI!!! /*** SSC-EWI-0073 - PENDING FUNCTIONAL EQUIVALENCE REVIEW FOR 'SDO_ORDINATE_ARRAY' NODE ***/!!!
  ) !!!RESOLVE EWI!!! /*** SSC-EWI-0073 - PENDING FUNCTIONAL EQUIVALENCE REVIEW FOR 'SDO_GEOMETRY' NODE ***/!!!
);

INSERT INTO geometry_table
VALUES (
NULL);
Copy

GEOGRAPHY 데이터 타입을 사용한 마이그레이션

Oracle
CREATE TABLE geometry_table(
    geometry_column SDO_GEOMETRY
);

INSERT INTO geometry_table VALUES (
	SDO_GEOMETRY('POINT(-79 37)')
);

INSERT INTO geometry_table VALUES (
    SDO_GEOMETRY('LINESTRING(1 3, 1 5, 2 7)')
);

/*
--NOT SUPPORTED BY SNOWFLAKE GEOGRAPHY
INSERT INTO geometry_table VALUES (
    MDSYS.SDO_GEOMETRY(
		2001,
		8307,
		MDSYS.SDO_POINT_TYPE (
			-86.13631,
			40.485424,
			NULL),
		NULL,
		NULL
	)
);
INSERT  INTO geometry_table VALUES (
SDO_GEOMETRY(
    2003,
    12,
    SDO_POINT_TYPE(12, 14, -5),
    SDO_ELEM_INFO_ARRAY(1,1003,3),
    SDO_ORDINATE_ARRAY(1,1, 5,7) 
  )
);
*/

SELECT * FROM geometry_table;
Copy
결과

GEOMETRY_COLUMN

[2001, null, [-79, 37, null], [NULL], [NULL]]

[2002, null, [null, null, null], [1,2,1], [1,3,1,5,2,7]]

Snowflake
CREATE OR REPLACE TABLE geometry_table (
	    geometry_column GEOMETRY
	)
	COMMENT = '{"origin":"sf_sc","name":"snowconvert","version":{"major":1, "minor":0},{"attributes":{"component":"oracle"}}'
	;

	INSERT INTO geometry_table
	VALUES (
	SDO_GEOMETRY('POINT(-79 37)') !!!RESOLVE EWI!!! /*** SSC-EWI-0073 - PENDING FUNCTIONAL EQUIVALENCE REVIEW FOR 'SDO_GEOMETRY' NODE ***/!!!
);

	INSERT INTO geometry_table
	VALUES (
    SDO_GEOMETRY('LINESTRING(1 3, 1 5, 2 7)') !!!RESOLVE EWI!!! /*** SSC-EWI-0073 - PENDING FUNCTIONAL EQUIVALENCE REVIEW FOR 'SDO_GEOMETRY' NODE ***/!!!
);

	/*
--NOT SUPPORTED BY SNOWFLAKE GEOGRAPHY
INSERT INTO geometry_table VALUES (
    MDSYS.SDO_GEOMETRY(
		2001,
		8307,
		MDSYS.SDO_POINT_TYPE (
			-86.13631,
			40.485424,
			NULL),
		NULL,
		NULL
	)
);
INSERT  INTO geometry_table VALUES (
SDO_GEOMETRY(
    2003,
    12,
    SDO_POINT_TYPE(12, 14, -5),
    SDO_ELEM_INFO_ARRAY(1,1003,3),
    SDO_ORDINATE_ARRAY(1,1, 5,7) 
  )
);
*/

SELECT * FROM
	    geometry_table;
Copy
결과

GEOMETRY_COLUMN

POINT(-79 37)

LINESTRING(1 3,1 5,2 7)

SDO_GEORASTER

참고

출력 코드의 일부 부분은 명확성을 위해 생략되었습니다.

설명

GeoRaster 오브젝트 관계형 모델에서 래스터 그리드 또는 이미지 오브젝트는 사용자 정의 테이블의 단일 행, 단일 열에 오브젝트 유형 SDO_GEORASTER 에 저장됩니다. (Oracle SQL Language Reference SDO_GEORASTER 데이터 타입).

SDO_GEORASTER 오브젝트의 정의:

CREATE TYPE SDO_GEORASTER AS OBJECT
  (rasterType         NUMBER,
   spatialExtent      SDO_GEOMETRY,
   rasterDataTable    VARCHAR2(32),
   rasterID           NUMBER,
   metadata           XMLType);
/

Copy

참고

SDO_GEORASTER 는 기본적으로 비활성화되어 있으며, 사용을 활성화하려면 Oracle 설명서의 이 섹션 에 설명된 단계를 따르십시오.

SDO_GEORASTER 오브젝트는 Snowflake에서 지원되지 않습니다.

샘플 소스 패턴

Create Table의 SDO_GEORASTER

Oracle
CREATE TABLE georaster_table(
    georaster_column SDO_GEORASTER
);
Copy
Snowflake
CREATE OR REPLACE TABLE georaster_table (
    !!!RESOLVE EWI!!! /*** SSC-EWI-0028 - TYPE NOT SUPPORTED BY SNOWFLAKE ***/!!!
        georaster_column SDO_GEORASTER
    )
    COMMENT = '{"origin":"sf_sc","name":"snowconvert","version":{"major":1, "minor":0},"attributes":{"component":"oracle"}}'
    ;
Copy
SDO_GEORASTER 테이블에 데이터 삽입하기
Oracle
INSERT INTO georaster_table VALUES (null);
INSERT INTO georaster_table VALUES (sdo_geor.init('RDT_11', 1));
Copy
Snowflake
INSERT INTO georaster_table
VALUES (null);

INSERT INTO georaster_table
VALUES (
!!!RESOLVE EWI!!! /*** SSC-EWI-OR0076 - TRANSLATION FOR BUILT-IN PACKAGE 'sdo_geor.init' IS NOT CURRENTLY SUPPORTED. ***/!!!
'' AS init);
Copy

Known Issues

1. SDO_GEORASTER 데이터 타입이 변환되지 않음

SDO_GEORASTER 데이터 타입은 SnowConvert 에 의해 변환되지 않습니다.

관련 EWIs

  1. SSC-EWI-0028: 유형은 지원되지 않습니다.

  2. SSC-EWI-OR0076: 기본 제공 패키지는 지원되지 않습니다.

SDO_TOPO_GEOMETRY

참고

출력 코드의 일부 부분은 명확성을 위해 생략되었습니다.

설명

이 유형은 사용자 정의 테이블에서 단일 행, 단일 열의 오브젝트 유형 SDO_TOPO_GEOMETRY 에 저장되는 토폴로지 지오메트리를 설명합니다. (Oracle SQL Language Reference SDO_TOPO_GEOMETRY 데이터 타입).

SDO_TOPO_GEOMETRY 오브젝트의 정의:

CREATE TYPE SDO_TOPO_GEOMETRY AS OBJECT
  (tg_type        NUMBER, 
   tg_id          NUMBER,
   tg_layer_id    NUMBER,
   topology_id    NUMBER);
/

Copy

SDO_TOPO_GEOMETRY 오브젝트는 Snowflake에서 지원되지 않습니다.

샘플 소스 패턴

Create Table의 SDO_TOPO_GEOMETRY

Oracle
CREATE TABLE topo_geometry_table(
    topo_geometry_column SDO_TOPO_GEOMETRY
);
Copy
Snowflake
CREATE OR REPLACE TABLE topo_geometry_table (
    !!!RESOLVE EWI!!! /*** SSC-EWI-0028 - TYPE NOT SUPPORTED BY SNOWFLAKE ***/!!!
        topo_geometry_column SDO_TOPO_GEOMETRY
    )
    COMMENT = '{"origin":"sf_sc","name":"snowconvert","version":{"major":1, "minor":0},{"attributes":{"component":"oracle"}}'
    ;
Copy

SDO_TOPO_GEOMETRY 테이블에 데이터 삽입하기

Oracle
INSERT INTO topo_geometry_table VALUES (SDO_TOPO_GEOMETRY(1,2,3,4));
INSERT INTO topo_geometry_table VALUES (NULL);
Copy
Snowflake
INSERT INTO topo_geometry_table
VALUES (SDO_TOPO_GEOMETRY(1,2,3,4) !!!RESOLVE EWI!!! /*** SSC-EWI-0073 - PENDING FUNCTIONAL EQUIVALENCE REVIEW FOR 'SDO_TOPO_GEOMETRY' NODE ***/!!!);

INSERT INTO topo_geometry_table
VALUES (NULL);
Copy

Known Issues

1. SDO_TOPO_GEOMETRY 데이터 타입이 변환되지 않음

SDO\TOPO_GEOMETRY 데이터 타입은 SnowConvert 에 의해 변환되지 않습니다.

관련 EWIs

  1. SSC-EWI-0028: 유형은 지원되지 않습니다.

  2. SSC-EWI-0073: 기능적 동등성 검토가 보류 중입니다.