Lesen versionierter Daten in Oracle mit versionierten Sichten

Sie können SQL SELECT-Anweisungen bei versionierten Sichten ausführen, um auf versionierte Daten zuzugreifen.

Versionierte Sichten greifen automatisch auf den aktuellen Status der DEFAULT-Version zu. Wenn Sie SELECT-Anweisungen bei einer versionierten Sicht ausführen, greift diese auf den aktuellen Status der DEFAULT-Version zu. Wenn andere Benutzer Bearbeitungen an der DEFAULT-Version vornehmen (und dadurch den Status ändern, auf den die DEFAULT-Version verweist), werden bei Ihren nachfolgenden Abfragen der letzte Status der DEFAULT-Version und ihre Bearbeitungen angezeigt.

Wenn Sie eine andere als die DEFAULT-Version abfragen möchten oder Sie nicht möchten, dass mit den Abfragen der DEFAULT-Version die Status geändert werden, führen Sie das Hilfsprogramm "version_util.set_current_version" aus. Mit diesem Hilfsprogramm wird der angegebene Versionsname überprüft und der Datenbank-State intern festgelegt. Abfragen der Version verweisen immer auf den Status der Version, auf die zu dem Zeitpunkt verwiesen wurde, zu dem Sie "version_util.set_current_version" ausgeführt haben.

Die Funktion "version_util.set_current_version" kann direkt von einem SQL-Client ausgeführt werden. Folgende Syntax wird verwendet:

EXEC sde.version_util.set_current_version('<version_name>')

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

Schritte:
  1. Stellen Sie sicher, dass eine versionierte Sicht für die versionierte Feature-Class oder die Tabelle vorhanden ist, auf die Sie zugreifen möchten.

    Ab ArcGIS 10.1 werden versionierte Sichten erstellt, wenn Sie Daten versionieren. Wenn die Daten vor Version 10.1 versioniert wurden, können Sie eine versionierte Sicht erstellen, indem Sie das Geoverarbeitungswerkzeug Versionierte Sicht erstellen ausführen.

  2. Führen Sie über eine SQL-Eingabeaufforderung das Hilfsprogramm "version_util.set_current_version" aus, um die Version festzulegen, die Sie abfragen möchten.

    In diesem Beispiel wird "version2" als abzufragende Version in der Master-sde-Geodatabase festgelegt. Wenn Sie dieses bei einer Version in einer Benutzerschema-Geodatabase ausführen, wird dem Dienstprogramm der Name des Geodatabase-Eigentümers vorangestellt.

    EXEC sde.version_util.set_current_version('version2')
    
  3. Geben Sie bei der versionierten Sicht eine SELECT-Anweisung aus, um versionierte Daten von der Geodatabase zu lesen.

    In diesem Beispiel lautet die versionierte Sicht "code_mv".

    SELECT violationID,codenum,propowner,insp_date 
    FROM code_mv 
    WHERE zip = '99999';
    

Wenn Sie zum Abfragen des aktuellen Status der DEFAULT-Version zurückkehren müssen, führen Sie die Prozedur "set_default" aus.

EXEC sde.version_util.set_default();
Sie können dann SELECT-Anweisungen bei der versionierten Sicht ausführen und bei den Abfragen wird der aktuelle Status der DEFAULT-Version angezeigt.

Verwandte Themen

5/10/2014