Skip to main content

Hinzufügen des Typs "ST_Geometry" zu einer Oracle-Datenbank

Mit der Standard- oder Advanced-Lizenz verfügbar.

Der Datenbankadministrator kann einer Oracle-Datenbank den Esri Typ "ST_Geometry", einen Subtype und Funktionen mithilfe des Geoverarbeitungswerkzeugs Räumlichen Typ erstellen oder mithilfe eines Python-Skripts hinzufügen, das die ArcPy-Funktion CreateSpatialType aufruft.

Nachdem Sie Ihrer Datenbank den Typ "ST_Geometry" hinzugefügt haben, können Sie ihn zum Speichern räumlicher Daten verwenden.

Sowohl mit dem Werkzeug als auch mit der Funktion wird ein Benutzer mit dem Namen "sde" in der Datenbank erstellt. Der SDE-Benutzer besitzt den ST_Geometry-Typ, Subtypes, Funktionen und Tabellen.

Hinweis:

Bei der Bereitstellung auf einem Microsoft Windows-Server wird für die Bibliothek "ST_Geometry" das Microsoft Visual C++ Redistributable Package (x64) benötigt. Informationen zur erforderlichen Paketversion finden Sie unter ArcGIS-Anforderungen für Oracle. Wenn dieses Paket auf dem -Server nicht verfügbar ist, laden Sie es von der Microsoft-Site herunter, und installieren Sie es.

Verwenden des Geoverarbeitungswerkzeugs "Räumlichen Typ erstellen"

Führen Sie die folgenden Schritte aus, um das Geoverarbeitungswerkzeug Räumlichen Typ erstellen auszuführen und den Typ "ST_Geometry" in einer Oracle-Datenbank zu installieren:

  1. Laden Sie die Bibliothek st_shapelib (Windows) oder libst_shapelib (Linux) von My Esri herunter und verschieben Sie sie an einen Speicherort auf dem Oracle-Server.

    Verwenden Sie die entsprechende Bibliothek für das Betriebssystem des Oracle-Servers.

    Das Verzeichnis auf dem Server, in dem Sie die Bibliothek ablegen, muss vom Client-Computer, auf dem Sie das Werkzeug Räumlichen Typ erstellen oder das Skript ausführen, zugänglich sein. Wenn Sie die Bibliothek auf einem UNIX- oder Linux-Computer platzieren, stellen Sie sicher, dass der Datenbankadministrator über Lesezugriff für das Verzeichnis und über die Berechtigungen zum Ausführen der Bibliotheksdatei verfügt.

    Wenden Sie sich an den Administrator Ihrer ArcGIS-Organisation, wenn die Download-Option nicht vorhanden ist.

  2. Öffnen Sie ein Projekt in ArcGIS Pro, öffnen Sie den Bereich Katalog, und stellen Sie als Oracle-SYS-Datenbankadministrator eine Verbindung mit der Datenbank her.

    Im Projektordner wird eine Datenbankverbindungsdatei (.sde) erstellt.

  3. Öffnen Sie das Geoverarbeitungswerkzeug Räumlichen Typ erstellen.

    Suchen Sie im Fenster Suchen nach dem Werkzeug, oder öffnen Sie das Werkzeug im Toolset "Workspace" der Toolbox "Data Management".

  4. Fügen Sie dem Textfeld des Parameters Eingabedatenbank die in Schritt 2 erstellte Datenbankverbindung hinzu.

  5. Geben Sie das Kennwort für den SDE-Datenbankbenutzer in das Textfeld des Parameters SDE-Benutzerkennwort ein.

  6. Geben Sie optional im Textfeld des Parameters Tablespace-Name den Namen eines Tablespace an, der als Standard-Tablespace des SDE-Benutzers verwendet werden soll.

    Das Werkzeug Räumlichen Typ erstellen erstellt einen 400-MB-Tablespace am Standardspeicherort von Oracle. Um den Speicherort oder die Größe des Tablespace zu steuern, erstellen Sie den Tablespace zunächst in Oracle und geben den vorhandenen Tablespace im Parameter Tablespace-Name an. Der bereits vorhandene Tablespace wird durch das Werkzeug als Standard für den SDE-Benutzer festgelegt.

  7. Geben Sie für den Parameter Pfad der ST_Geometry-Shape-Bibliothek den Pfad zum Verzeichnis auf dem Oracle-Server an, in dem Sie die Datei libst_shapelib.so oder st_shapelib.dll abgelegt haben (einschließlich des Namens der Datei).

    Wenn Sie beispielsweise die Datei libst_shapelib.so im Verzeichnis libraries auf einem Linux-Server namens "boxy" abgelegt haben, müssen Sie /boxy/libraries/libst_shapelib.so eingeben.

  8. Klicken Sie auf Ausführen.

Der ST_Geometry-Typ, Subtypes und Funktionen werden im Schema des SDE-Benutzers erstellt, und in Oracle wird ein Eintrag für die Shape-Bibliothek hinzugefügt.

Wenn Sie mit der Funktion ST_Transform geographische Transformationen durchführen möchten, müssen Sie den Ordner "pedata" aus dem ArcGIS Pro-Installationsverzeichnis kopieren, auf dem Oracle-Server platzieren und eine PEDATAHOME-Umgebungsvariable auf dem Server festlegen, die auf dieses Verzeichnis verweist.

Verwenden von ArcPy-Funktionen

Verwenden Sie auf jedem ArcGIS Pro- oder ArcGIS Server-Computer die ArcPy-Funktion CreateDatabaseConnection, um eine Datenbankverbindungsdatei (.sde) zu erstellen, die als Oracle-"sys"-Benutzer eine Verbindung mit der Oracle-Datenbank herstellt. Erstellen Sie als Nächstes mithilfe der Datei .sde und der ArcPy-Funktion CreateSpatialType den Esri Typ "ST_Geometry", den Subtype und die Funktionen in der Datenbank.

  1. Laden Sie die Bibliothek st_shapelib (Windows) oder libst_shapelib (Linux) von My Esri herunter und verschieben Sie sie an einen Speicherort auf dem Oracle-Server.

    Stellen Sie sicher, dass die Bibliothek entsprechend dem Betriebssystem des Oracle-Servers verwendet wird.

    Das Verzeichnis auf dem Server, in dem Sie die Bibliothek ablegen, muss vom Client-Computer, auf dem Sie das Skript ausführen, zugänglich sein. Wenn Sie die Bibliothek auf einem UNIX- oder Linux-Computer platzieren, stellen Sie sicher, dass der Datenbankadministrator über Lesezugriff für das Verzeichnis und über die Berechtigungen zum Ausführen der Bibliotheksdatei verfügt.

  2. Führen Sie die Funktion CreateDatabaseConnection aus, um eine .sde-Datei zu erstellen.

    Sie müssen die Verbindung als Oracle-"sys"-Benutzer herstellen und Ihre Anmeldeinformationen speichern.

    Im folgenden Beispiel wird die Verbindungsdatei mit dem Namen "dbadminconnection" in einem Verzeichnis mit dem Namen "TempFiles" erstellt. Die Oracle-Instanz ist oserve, und die Anmeldeinformationen des "sys"-Benutzers werden angegeben und mit der Datei gespeichert.

    import arcpy
    arcpy.management.CreateDatabaseConnection(
       "/user/TempFiles",
       "dbadminconnection.sde",
       "ORACLE",
       "oserve/ORCL",
       "DATABASE_AUTH",
       "sys",
       "D0B3tt3r",
       "SAVE_USERNAME"
    )
    
  3. Führen Sie die ArcPy-Funktion CreateSpatialType aus, um den Typ "ST_Geometry" in der Oracle-Datenbank zu installieren.

    In diesem Beispiel wird die Verbindungsdatei aus dem vorherigen Schritt verwendet. Das Kennwort und der Tablespace werden für den SDE-Benutzer angegeben (pw0rd4sde bzw. sdetblsp). Der Speicherort der Bibliothek "ST_Geometry" wird angegeben.

    import arcpy
    arcpy.management.CreateSpatialType(
       "suserconnection.sde",
       "pw0rd4sde",
       "sdetblsp",
       "/net/oserve/ora/shape/libst_shapelib.so"
    )
    

Der ST_Geometry-Typ, Subtypes und Funktionen werden im Schema des SDE-Benutzers erstellt, und in Oracle wird ein Eintrag für die Shape-Bibliothek hinzugefügt.

Wenn Sie mit der Funktion ST_Transform geographische Transformationen durchführen möchten, müssen Sie den Ordner "pedata" aus dem ArcGIS Pro-Installationsverzeichnis kopieren, auf dem Oracle-Server platzieren und eine PEDATAHOME-Umgebungsvariable auf dem Server festlegen, die auf dieses Verzeichnis verweist.