SnowConvert AI – Oracle – Räumliche Typen

Beschreibung

Oracle Spatial and Graph wurde entwickelt, um die Verwaltung räumlicher Daten für Benutzende von standortbezogenen Anwendungen, Geoinformationssystemen (GIS) und Geoimaging-Anwendungen einfacher und intuitiver zu gestalten. (Oracle SQL-Sprachreferenz – Räumliche Typen)

{ SDO_Geometry | SDO_Topo_Geometry |SDO_GeoRaster }

Copy

SDO_GEOMETRY

Bemerkung

Einige Teile des Ausgabecodes wurden aus Gründen der Übersichtlichkeit weggelassen.

Beschreibung

Die geometrische Beschreibung eines räumlichen Objekts wird in einer einzigen Zeile, in einer einzigen Spalte der Objektart SDO_GEOMETRY in einer benutzerdefinierten Tabelle gespeichert. Jede Tabelle, die eine Spalte des Typs SDO_GEOMETRY hat, muss eine weitere Spalte oder einen Satz von Spalten haben, die einen eindeutigen Primärschlüssel für diese Tabelle definieren. (Oracle SQL Language Reference SDO_GEOMETRY Data Type)

Definition von SDO_GEOMETRY-Objekt:

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

Das Objekt SDO_GEOMETRY wird in Snowflake nicht unterstützt. Eine Umgehungsmöglichkeit für diesen Datentyp ist die Verwendung von Snowflake GEOGRAPHY, allerdings wird diese Transformation derzeit nicht von SnowConvert unterstützt.

Beispielhafte Quellcode-Muster

SDO_GEOMETRY in Create Table

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

Einfügen von Daten in die SDO_GEOMETRY-Tabelle

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

Migration unter Verwendung des Datentyps 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
Ergebnis

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
Ergebnis

GEOMETRY_COLUMN

POINT(-79 37)

LINESTRING(1 3,1 5,2 7)

SDO_GEORASTER

Bemerkung

Einige Teile des Ausgabecodes wurden aus Gründen der Übersichtlichkeit weggelassen.

Beschreibung

Im objektrelationalen Modell GeoRaster wird ein Rastergitter- oder Bildobjekt in einer einzigen Zeile, in einer einzigen Spalte des Objekttyps SDO_GEORASTER in einer benutzerdefinierten Tabelle gespeichert. (Oracle SQL Language Reference SDO_GEORASTER Data Type).

Definition von SDO_GEORASTER-Objekt:

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

Copy

Bemerkung

SDO\GEORASTER ist standardmäßig deaktiviert. Um die Verwendung zu aktivieren, führen Sie die in diesem Abschnitt der Oracle-Dokumentation beschriebenen Schritte aus.

Das Objekt SDO_GEORASTER wird in Snowflake nicht unterstützt.

Beispielhafte Quellcode-Muster

SDO_GEORASTER in Create Table

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
Einfügen von Daten in die SDO_GEORASTER-Tabelle
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

Bekannte Probleme

1. SDO_GEORASTER-Datentyp nicht transformiert

SDO_GEORASTER-Datentyp wird nicht von SnowConvert umgewandelt.

Zugehörige EWIs

  1. SSC-EWI-0028: TYPE nicht unterstützt.

  2. SSC-EWI-OR0076: Integriertes Paket nicht unterstützt.

SDO_TOPO_GEOMETRY

Bemerkung

Einige Teile des Ausgabecodes wurden aus Gründen der Übersichtlichkeit weggelassen.

Beschreibung

Dieser Typ beschreibt eine Topologiegeometrie, die in einer einzigen Zeile, in einer einzigen Spalte des Objekttyps SDO_TOPO_GEOMETRY in einer benutzerdefinierten Tabelle gespeichert wird. (Oracle SQL Language Reference SDO_TOPO_GEOMETRY Data Type).

Definition von SDO_TOPO_GEOMETRY Objekt:

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

Copy

Das Objekt SDO_TOPO_GEOMETRY wird in Snowflake nicht unterstützt.

Beispielhafte Quellcode-Muster

SDO_TOPO\_GEOMETRY in Create Table

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

Daten in die Tabelle SDO_TOPO_GEOMETRY einfügen

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

Bekannte Probleme

1. SDO_TOPO_GEOMETRY Datentyp nicht transformiert

SDO_TOPO\_GEOMETRY Datentyp wird nicht von SnowConvert umgewandelt.

Zugehörige EWIs

  1. SSC-EWI-0028: TYPE nicht unterstützt.

  2. SSC-EWI-0073: Überprüfung auf gleichwertige Funktion ausstehend.