Ejemplo: Crear vistas espaciales en Oracle con el comando sdetable
Puede crear vistas espaciales con el comando sdetable al incluir la columna espacial en la lista de columnas especificadas con la opción –c. Cuando crea una vista espacial con el comando sdetable, esta se registra como una tabla en ArcSDE. Para registrar la vista como una capa, utilice el comando sdelayer.
En este ejemplo, se crea una vista espacial que incorpora columnas de una clase de entidad y tabla no espacial con el comando sdetable, a la que se le otorgan privilegios. Posteriormente, la vista se registra como una capa con ArcSDE.
Crear una vista espacial
En el siguiente ejemplo, la tabla, empleados, se une con la clase de entidad, regiones. Las tablas se unen en emp_id, que existe en ambas tablas.
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
Si las tablas no pertenecen al usuario conectado, el nombre debe estar en formato owner.table. Cuando utilice varias tablas, debe calificar los nombres de cada columna enumerada después de –c con el nombre de la tabla que utiliza el formato table.column o owner.table.column.
Para utilizar tablas que están en una geodatabase en el esquema de un usuario, especifique la geodatabase perteneciente al usuario con la opción –D.
Dado que en este ejemplo se incluyen columnas de dos tablas diferentes en la vista, lo que hace que los nombres de la tabla sean bastante largos, la opción –a se utiliza para asignar alias a las columnas. Sin embargo, el solapamiento sólo es necesario si los nombres de columna que se incluyen en la vista son ambiguos. Por ejemplo, si crea una vista entre dos tablas e incluye la columna de nombre de ambas, debe asignar un alias a las columnas y otorgarles nombres diferentes. Si utiliza la opción –a para asignar un alias a los nombres de columna, las columnas y el orden en el que están enumeradas deben ser iguales en las listas –c y –a.
El reg_id es la columna de enteros, no nulos de la clase de entidad regiones que se utiliza como el Id. de fila en ArcSDE. Región es la columna espacial de la clase de entidad regiones.
El usuario gdb debe tener como mínimo privilegios selectos en la clase de entidad regiones para incluirlo en la definición emp_region_view.
Ahora la vista está registrada con ArcSDE como una tabla (hay una entrada para ella en la tabla del sistema TABLE_REGISTRY). La vista aparecerá como una tabla cuando se visualice mediante ArcGIS Desktop.
Otorgar privilegios en la vista
Puede utilizar SQL o el comando sdetable para otorgar privilegios en una vista.
En el ejemplo: Al crear una vista espacial en Oracle con SQL y registrarla, SQL se utiliza para otorgar privilegios en la vista. En este ejemplo, se utiliza el comando sdetable con la operación de otorgación.
sdetable -o grant -t emp_region_view -U dispatch1 -A SELECT -s myodbserver -i sde:oracle11g:ora1 -u gdb -p gdb.bdg -I
Se incluye la opción –I para permitir que el usuario, dispatch1, otorgue privilegios en la vista a otros usuarios.
Registrar la vista como una capa
Cuando se creó la vista con el comando sdetable, se registró con ArcSDE como una tabla. Para ver la vista como una capa, debe registrarla con el comando 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
Los valores que proporcione para las opciones, excepto –o, variarán según los datos.
Para obtener más información acerca de los comandos sdelayer y sdetable, consulte la Referencia sobre el comando de administración.