FAQ: How do I manually register Oracle Spatial tables containing third-party data?
How do I manually register Oracle Spatial tables containing third-party data?
Oracle Spatial allows users to create spatial data as part of any table's schema. ArcSDE supports these tables through manual registration using the command 'sdelayer -o register'. This command populates ArcSDE's system tables so that the table appears as a layer to ArcSDE client applications. For a table to be registered with ArcSDE, it must meet at least the following criteria:
- It must be owned by the user registering the table.
- It must have a single SDO_GEOMETRY column.
- It must have no other columns of a user-defined type.
- It must have a valid entry in the view USER_SDO_GEOM_METADATA.
- It must have a single type of geometry (points, lines or polygons). Geometry can be multipart.
- It must have an INTEGER, UNIQUE, NOT-NULL column suitable as a registered row ID column.
- It should have a spatial index; otherwise, spatial queries are not possible.
- It should pass Oracle's geometry validation tests; otherwise, accessing these geometries may have unexpected results.
Tables registered with ArcSDE must have a registered row ID column. If there is an existing column that is NUMBER(38) NOT NULL UNIQUE or NUMBER(38) PRIMARY KEY, that column is registered as the row ID column. Otherwise, the existing integer must be a specified, unique not-NULL column using the '-C' option.
If the row ID column is maintained by ArcSDE, then the column must be NUMBER(38) UNIQUE NOT NULL or NUMBER(38) PRIMARY KEY.
Specify the type of geometry (entity type) in the table using the '-e' option. The '-g' option should be used to specify the type of spatial index used, usually '-g RTREE'. Using the '-k' option is not necessary.
The following is an example, using ArcSDE 9.0 syntax, of registering the third party table WELLS having a geometry column GEOMETRY containing multipart points. It has an existing column called OBJECTID, and an R-tree spatial index.
sdelayer -o register -l WELLS,GEOMETRY -e p+ -g RTREE
-C OBJECTID,USER -u me -p mypw
ArcSDE does not scan third party tables when they are registered, so it is the user's responsibility to not register tables with unsupported features. Users, who register Oracle Spatial tables with unsupported features, will have difficulties attempting to use the registered layer in any of ArcSDE's client applications. Errors may occur, layers may not draw, or only parts of the layer draw.
- Which Oracle SDO_GEOMETRY geometry types are supported by ArcSDE?
- How does autoregistration of Oracle Spatial tables work?