What version of ArcSDE are you using? Which service pack has been applied? What geometry
storage type are you using?
What version of ArcGIS are you using? Which Service Pack?
What application requires NVARCHAR2 columns? (Last I heard, Oracle recommended *against*
using NVARCHAR2 if most of the characters are ACSII7.)
Doing a this sort of conversion in-situ is going to fracture your table, causing lots of fragmentation.
The best way to implement the change is to copy the table contents with a "CREATE TABLE backup
AS SELECT * FROM original", TRUNCATE the original, drop the indexes, do ALTERs until the schema
is correct, then INSERT via a SELECT and rebuild indexes. You'll probably want to add a proper
foreign key based on the old OBJECTID while you're at it. In a perfect world, you'd reorder the
rows to defragment the features spatially at the same time (via an ORDER BY during INSERT), but
that depends on geometry storage.
- V
SDEBINARY storage isn't really supported on Oracle 10g due to issues with LONG RAW deprecation,
and isn't *possible* with 11g (Oracle support for 10g ended in the first half of 2011). ST_GEOMETRY
is generally faster than SDELOB storage (due to elimination of the F table).
There is no way to defragment tables fractured by in-situ conversion (without truncating and repopulating
them, of course).
Doing the job right is going to take longer than doing it quick, but it should save time in the long run
as the time savings on each query result adds up. At a minimum, you should start planning for an
11g/ST_GEOMETRY/ArcGIS 10.1 upgrade.
- V
You can use a variant of the method ArcSDE uses to maintain OBJECTID rowid columns to
maintain your independent IDs. ArcSDE shifted from a simple sequence because of the
performance cost during bulk insert, but if you're not doing much bulk assignment, then
a simple sequence may be the way to go.
- V
Note: If you use the TRUNCATE/ALTER/INSERT procedure, you'll need to run an 'sdetable
-o describe' as the owner on each table to correct the internal SDE.COLUMN_INFO type
codes. You'll also want to prototype this with a trivial layer, to make sure ArcGIS doesn't
object to the type change. This is especially true for versioned tables.
We are planning on using sequences, as they're so simple. Thanks for the warning on needing to run the 'describe'; I would have missed that. I've run into another concern, though, and that's related to archiving. What happens when I truncate and insert? Will those be interpreted as changes to the data by the archiving triggers/procedures? I know there's no way through the ArcGIS software to turn off and turn back on archiving without creating new archive classes, which won't work for us. Is there a way to disable the triggers/procedures that make archiving function temporarily, or is that proprietary/wrapped code we don't have access to? If I can't disable archiving and continue to use the same archive classes, what options do I have for altering the column types for my archived feature classes? Thanks.