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. Informationen zu den Datentypen und Geodatabase-Verhalten, die nicht mit SQL bearbeitet werden können, finden Sie unter Welcher Datentyp kann mit SQL bearbeitet werden?.
Alle Daten, die unter der Geodatabase registriert sind, verfügen über ein vom System verwaltetes, eindeutiges ObjectID-Feld (Zeilen-ID), das 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 ObjectID einen Einzelwert eingeben.
Diese Anleitung beschreibt die Aktualisierung der einzelnen Zeilen. In der Regel schreiben Sie eine Routine oder ein Client-Programm, um ObjectIDs 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.
-
Führen Sie eine SQL-Anweisung ähnlich der folgenden aus, um die gespeicherte Prozedur "Next_RowID" aufzurufen.
Bei der gespeicherten Prozedur "Next_RowID" wird der Eigentümer der Tabelle und der Tabellenname als Eingabe verwendet, um die nächste ObjectID für die Tabelle zurückzugeben.
In diesem Beispiel ist "GIS" der Eigentümer der Tabelle und "FACTORIES" ist der Tabellenname. Die drei Fragezeichen stehen für die drei zurückgegebenen Parameter: ROWID, MSGCODE und MESSAGE.
CALL SDE.next_rowid('GIS','FACTORIES',?,?,?) 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
-
Fügen Sie mithilfe des O_ROWID-Wertes, der von der vorherigen Aufrufanweisung zurückgegeben wird, einen Datensatz in die Tabelle ein.
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)) );
- Sie können das Editieren fortsetzen oder die Änderungen an der Datenbank speichern, nachdem Sie das Editieren abgeschlossen haben.