Beispiel: Erstellen von räumlichen Sichten in Oracle mit dem Befehl "sdetable"

Komplexität: Einsteiger Erforderliche Daten: Eigene Daten verwenden

Sie können räumliche Sichten mit dem Befehl "sdetable" erstellen, indem Sie die räumliche Spalte in die Liste der mit der Option –c angegebenen Spalten einschließen. Wenn Sie eine räumliche Sicht mit dem Befehl "sdetable" erstellen, wird diese als Tabelle in ArcSDE registriert. Um die Sicht als Layer zu registrieren, verwenden Sie den Befehl "sdelayer".

In diesem Beispiel wird eine räumliche Sicht, die Spalten aus einer Feature-Class und einer nicht räumlichen Tabelle enthält, mithilfe des Befehls "sdetable" erstellt und Berechtigungen dafür erteilt. Anschließend wird die Sicht als Layer in ArcSDE registriert.

Erstellen einer räumlichen Sicht

Im folgenden Beispiel wird die Tabelle "employees" mit der Feature-Class "regions" verbunden. Die Tabellen werden über "emp_id" zusammengeführt, die in beiden Tabellen vorhanden ist.

sdetable -o create_view -T emp_region_view -t "employees,world.regions" 
-c "employees.name,employees.emp_id,world.regions.reg_id,world.regions.rname,world.regions.region"
-a "employee,eid,rid,region,area" -w "employees.emp_id = world.regions.emp_id"
-s myodbserver -i sde:oracle11g:ora1 -u gdb -p gdb.bdg

Wenn die Tabellen nicht im Besitz des aktiven Benutzers sind, muss der Name das Format "Besitzer.Tabelle" aufweisen. Bei Verwendung mehrerer Tabellen müssen Sie die Namen der einzelnen hinter "–c" aufgelisteten Spalten mit dem Namen der Tabelle im Format "Tabelle.Spalte" oder "Besitzer.Tabelle.Spalte" angeben.

Wenn Sie Tabellen verwenden möchten, die sich in einer Geodatabase in einem Benutzerschema befinden, geben Sie diese Geodatabase mit dem Befehl "–D" an.

Da in diesem Beispiel die Spalten aus zwei verschiedenen Tabellen in der Sicht enthalten sind und die Tabellennamen dadurch recht lang werden, wird die Option "–a" verwendet, um den Spalten Aliasnamen zuzuweisen. Erforderlich ist das Aliasing jedoch nur, wenn die Spaltennamen in der Sicht zweideutig sind. Wenn Sie beispielsweise eine Sicht zwischen zwei Tabellen erstellen und die Namensspalte aus beiden einbeziehen, sollten Sie den Spalten Aliasnamen zuweisen, um sie zu unterscheiden. Wenn Sie die Option "–a" für das Aliasing der Spaltennamen verwenden, müssen die Spalten und die Auflistungsreihenfolge in den Listen "–c" und "–a" genau übereinstimmen.

"reg_id" ist die Ganzzahlspalte (Not NULL) aus der Feature-Class "regions", die als Zeilen-ID in ArcSDE verwendet wird. "Region" ist die räumliche Spalte aus der Feature-Class "regions".

TippTipp:

Der Benutzer "gdb" muss mindestens SELECT-Berechtigung für die Feature-Class "regions" haben, um sie in die "emp_region_view"-Definition aufzunehmen.

Die Sicht ist nun in ArcSDE als Tabelle registriert (es gibt einen Eintrag dafür in der Systemtabelle TABLE_REGISTRY). Beim Anzeigen in ArcGIS Desktop wird die Sicht als Tabelle dargestellt.

Erteilen von Berechtigungen für die Sicht

Sie können SQL oder den Befehl "sdetable" verwenden, um Berechtigungen für eine Sicht zu erteilen.

In Beispiel: Erstellen und Registrieren einer räumlichen Sicht in Oracle mit SQL wird SQL zum Erteilen von Berechtigungen für die Sicht verwendet. In diesem Beispiel wird der Befehl "sdetable" mit "grant" angewendet.

sdetable -o grant -t emp_region_view -U dispatch1 -A SELECT
-s myodbserver -i sde:oracle11g:ora1 -u gdb -p gdb.bdg -I

Die Option "–I" ist eingeschlossen, um dem Benutzer "dispatch1" zu ermöglichen, anderen Benutzern Berechtigungen für die Sicht zu erteilen.

Registrieren der Sicht als Layer

Wenn die Sicht mit dem Befehl "sdetable" erstellt wurde, wurde sie als Tabelle in ArcSDE registriert. Um die Sicht als Layer anzuzeigen, registrieren Sie sie mit dem Befehl "sdelayer".

sdelayer -o register -l emp_region_view,region -e a 
-C reg_id,USER -t ST_GEOMETRY -E 2.20,2.20,3.01,3.01 -R 1 
-s myodbserver -i sde:oracle11g:ora1 -u gdb -p gdb.bdg

Die für die Optionen bereitgestellten Werte, außer "–o", sind in Abhängigkeit Ihrer Daten unterschiedlich.

Weitere Informationen zu den Befehlen "sdelayer" und "sdetable" finden Sie in der Administration Command Reference.


3/6/2012