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 }
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);
/
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
);
Snowflake¶
CREATE OR REPLACE TABLE geometry_table (
geometry_column GEOMETRY
)
COMMENT = '{"origin":"sf_sc","name":"snowconvert","version":{"major":1, "minor":0},{"attributes":{"component":"oracle"}}'
;
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);
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);
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;
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;
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_GEORASTERin 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);
/
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
);
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"}}'
;
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));
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);
Bekannte Probleme¶
1. SDO_GEORASTER-Datentyp nicht transformiert
SDO_GEORASTER-Datentyp wird nicht von SnowConvert umgewandelt.
Zugehörige EWIs¶
SSC-EWI-0028: TYPE nicht unterstützt.
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_GEOMETRYin 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);
/
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
);
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"}}'
;
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);
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);
Bekannte Probleme¶
1. SDO_TOPO_GEOMETRY Datentyp nicht transformiert
SDO_TOPO\_GEOMETRY Datentyp wird nicht von SnowConvert umgewandelt.
Zugehörige EWIs¶
SSC-EWI-0028: TYPE nicht unterstützt.
SSC-EWI-0073: Überprüfung auf gleichwertige Funktion ausstehend.