Knowledge Base - Technical Articles

Technical Article   FAQ:  How do I manually register Oracle Spatial tables containing third-party data?

Article ID: 20275
Software:  ArcSDE 8.1, 8.1.2, 8.2, 8.3, 9.0, 9.1, 9.2, 9.3, 9.3.1
Platforms: N/A


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.

Related Information

  • Which Oracle SDO_GEOMETRY geometry types are supported by ArcSDE?
    ArcSDE reads and writes OGIS-compliant simple feature types provided by Oracle Spatial and Oracle Locator. These include simple points, linestrings, and polygons. Multipart features are also supported. ArcSDE reads and writes compound linestr...
  • How does autoregistration of Oracle Spatial tables work?
    ArcSDE can automatically register some tables containing Oracle SDO_GEOMETRY columns that were not created using ArcSDE client software. Once registered, these tables can be accessed through ArcSDE as layers. This process is called autoregistratio...

Created: 8/14/2001
Last Modified: 5/3/2011

Article Rating: (2)
If you would like to post a comment, please login


By Anonymous - 11/08/2004 3:38 PM

This does not work. When I do a describe_long I see some bad values: Layer Envelope: falsex,falsey = 0 and Meaure_offset Layer Type: In-Line Spatial Type (shouldn't this be SDE) Coordinate System: UNKNOWN =====================================


By Anonymous - 09/15/2004 9:29 AM

This article should be updated for 9.0 to reflect the change in the usage of the -C parameter for SDELAYER -o register.