Bearbeiten nicht versionierter Geodatabase-Daten in DB2 per SQL
Mithilfe von SQL können Sie Daten in der Geodatabase aktualisieren, Daten in die Geodatabase einfügen und Daten aus nicht versionierten Tabellen daraus löschen, falls diese nicht an Geodatabase-Verhalten beteiligt sind. Unter Welcher Datentyp kann mit SQL bearbeitet werden? finden Sie Informationen zu den Typen von Daten und Geodatabase-Verhalten, die Sie nicht per SQL bearbeiten können.
Alle Daten, die unter der Geodatabase registriert sind, verfügen über eine vom System verwaltete, eindeutige Objekt-ID-Spalte (Zeilen-ID), die nicht null ist. Wenn Sie SQL zum Einfügen von Datensätzen in nicht versionierte Tabellen in der Geodatabase verwenden, müssen Sie für die Objekt-ID einen Einzelwert eingeben.
Diese Anleitung beschreibt die Aktualisierung der einzelnen Zeilen. In der Regel schreiben Sie eine Routine oder ein Client-Programm, um Objekt-IDs abzurufen und die Daten zu aktualisieren.
-
Melden Sie sich über einen SQL-Editor, z. B. die Call Level Interface von DB2, bei der Datenbank an.
Melden Sie sich bei der Datenbank als Benutzer an, der über die Berechtigung zum Bearbeiten der Daten verfügt.
-
Fragen Sie die Tabelle TABLE_REGISTRY nach der Registrierungs-ID und dem Besitzer der Tabelle ab, in die Sie eine Zeile einfügen möchten.
In diesem Beispiel werden die Registrierungs-ID und der Besitzername für die Tabelle "factories" zurückgegeben.
SELECT REGISTRATION_ID,OWNER,TABLE_NAME FROM SDE.TABLE_REGISTRY WHERE TABLE_NAME = 'FACTORIES'; REGISTRATION_ID OWNER TABLE_NAME 5 gis factories
- Melden Sie sich bei einer DB2-Client-Anwendung an, oder führen Sie eine SQL-PL-Routine aus, um die Prozedur "next_row_id" aufzurufen.
-
Verwenden Sie die Registrierungs-ID und den Besitzernamen, die von der vorherigen SELECT-Anweisung (gis und 5) zurückgegeben wurden, wenn Sie die Routine "next_row_id" aufrufen, um die nächste verfügbare Zeilen-ID abzurufen. Diese Routine wird im Schema des Benutzers "sde" gespeichert.
In diesem Beispiel ist "GIS" der Tabellenbesitzer und "5" die Registrierungs-ID der Tabelle. Die drei Fragezeichen stehen für die drei zurückgegebenen Parameter: ROWID, MSGCODE und MESSAGE.
CALL SDE.next_row_id('GIS',5,?,?,?) Value of output parameters Parameter Name : O_ROWID Parameter Value : 18 Parameter Name : O_MSGCODE Parameter Value : 0 Parameter Name : O_MESSAGE Parameter Value : Procedure successfully completed. Return Status = 1
-
Wechseln Sie zurück zur SQL-Oberfläche, um einen Datensatz in die Tabelle einzufügen.
INSERT INTO FACTORIES (OBJECTID,NAME,SHAPE) VALUES( 18, 'megafactory', db2gse.ST_PolyFromText('POLYGON( ( 50 31, 54 31, 54 29, 50 29, 50 31) )', db2gse.coordref()..srid(101)) );