Lesen von versionierten Daten in PostgreSQL mit Multiversioned Views

Sie können SELECT-SQL-Anweisungen für Multiversioned Views ausführen, um auf versionierte Daten zuzugreifen.

Multiversioned Views greifen automatisch auf die DEFAULT-Version zu. Bevor Sie Abfragen für die Sicht eingeben, müssen Sie sicherstellen, dass Sie die erforderliche Version abfragen.

Um auf eine andere als die Version "DEFAULT" zuzugreifen, führen Sie die ArcSDE-Funktion "sde_set_current_version" aus. Mit dieser Prozedur wird der angegebene Versionsname überprüft und der Datenbank-State intern festgelegt. Die Prozedur kann direkt von einem SQL-Client ausgeführt werden. Die Syntax, die für die aktuelle Version der Funktion festgelegt wird, ist:

SELECT sde.sde_set_current_version('<version_name>');

Diese Prozedur kann bei Bedarf erneut aufgerufen werden, um zu anderen Versionen zu wechseln, und sie wird jedes Mal beim Aktualisieren des Workspaces aufgerufen, um den aktuellen Zustand der versionierten Tabelle an die aufrufende Anwendung zurückzugeben.

VorsichtVorsicht:

Multiversioned Views sollten nicht zum Zugreifen auf komplexe Features oder zum Ändern von solchen verwendet werden, d. h. Features, die an geometrischen Netzwerken, Topologien, Terrains, Cadastral Fabrics, Netzwerk-Datasets oder Beziehungen beteiligt sind oder ein spezifisches Verhalten in der Geodatabase aufweisen. Zum Anzeigen und Ändern dieser Feature-Typen sollten Sie ArcGIS verwenden.

Schritte:
  1. Führen Sie an einer MS-DOS- (Windows) oder Shell-Befehlseingabeaufforderung (Linux) das Dienstprogramm "sdetable" aus, um eine Multiversioned View zu erstellen.
    sdetable –o create_mv_view –T code_mv –t code_enf 
    –i sde:postgresql:myserver –D code –u sarja –p not4U
  2. Öffnen Sie einen psql-Client, und verwenden Sie die Prozedur "sde_set_current_version", um die zu bearbeitende Version festzulegen.
    SELECT sde.sde_set_current_version('version2');
  3. Geben Sie eine SELECT-Anweisung für die Multiversioned View aus, um versionierte Daten aus der Geodatabase zu lesen.
    SELECT violationID,codenum,propowner,insp_date 
    FROM code_mv 
    WHERE zip = '99999';

Verwandte Themen


7/10/2012