select owner, object_type, count(*) from dba_objects where owner = 'SDE' and object_type like '%TYPE%' group by owner, object_type order by object_type; OWNER OBJECT_TYPE COUNT(*) ------------------------------ ------------------- ---------- SDE INDEXTYPE 1 SDE TYPE 39 SDE TYPE BODY 24
OWNER OBJECT_TYPE OBJECT_NAME SUBOBJECT_NAME STATUS ------------------------------ ------------------- ------------------------------ ----------------------------- SDE TYPE ST_DOMAIN_METHODS $VSN_4 VALID SDE TYPE ST_DOMAIN_METHODS $VSN_3 VALID SDE TYPE ST_DOMAIN_METHODS $VSN_2 VALID SDE TYPE ST_DOMAIN_METHODS $VSN_5 VALID SDE TYPE ST_DOMAIN_METHODS $VSN_1 VALID SDE TYPE ST_DOMAIN_STATS $VSN_3 VALID SDE TYPE ST_DOMAIN_STATS $VSN_2 VALID SDE TYPE ST_DOMAIN_STATS $VSN_1 VALID
Thanks Fojo. In My Oracle Support (MOS), a search for Bug 13693393 beneath Patches & Updates > Number/Name or Bug Number (Simple) with Bug Number selected from the drop down and 13693393 in the search box revealed nothing.
Does this mean the bug hasn't been fixed yet or was so recently submitted that it's not appearing the the search? Presuming User Error on my part and will keep looking.
[UPDATE: MOS ID 1411854.1 reports the bug in Data Pump has not yet been fixed; and to use suggested workarounds]
The behavior you are encountering sounds very similar to a known Oracle limitation involving Datapump and ST_GEOMETRY.
Here is a Knowledge Base Article describing this issue in more detail :
http://support.esri.com/index.cfm?fa=knowledgebase.techArticles.articleShow&d=41252
The solution is to either move to 11.2.0.3.0 and apply the Oracle Patch or move to 11.2.0.4.0. Contact Oracle Support Services for more information regarding this issue.
Hope this helps.
-Shawn
I've succesfully migrated ST_GEOMETRY databases with datapump. This is how:
1. Use 11.2.0.4 or apply the patch as mentioned before
2. Grant permissions
GRANT EXECUTE ON sys.dbms_pipe TO public;
GRANT EXECUTE ON sys.dbms_lock TO public;
GRANT EXECUTE ON sys.dbms_lob TO public;
GRANT EXECUTE ON sys.dbms_utility TO public;
GRANT EXECUTE ON sys.dbms_sql TO public;
GRANT EXECUTE ON sys.utl_raw TO public;
GRANT EXECUTE ON sys.DBMS_CRYPTO TO public;
-- DBMS_CRYPTO appears to be needed to create the ST_GEOMETRY data type and as the user SDE doesn't exist yet we grant it to public to avoid permission errors
3. Import SDE schema without indexes/constraints etc (this is the content of the .par file):
userid = "/@TARGETDATABASE as sysdba"
directory = DMPDIR
dumpfile = ORADUMP.DMP
logfile = oraimpdp_stap1.log
EXCLUDE = CONSTRAINT,REF_CONSTRAINT,INDEX,TABLE_STATISTICS,TRIGGER,REFRESH_GROUP
SCHEMAS = SDE
4. Verify import by fixing invalid objects
Exec dbms_utility.compile_schema( 'SDE', compile_all => FALSE );
SELECT *
FROM DBA_OBJECTS
WHERE STATUS <> 'VALID'
ORDER BY OWNER, OBJECT_NAME;
5. Import USER schemas without indexes/constraints etc (this is the content of the .par file):
userid = "/@TARGETDATABASE as sysdba"
directory = dmpdir
dumpfile = ORADUMP.DMP
logfile = oraimpdp_stap2.log
EXCLUDE = CONSTRAINT,REF_CONSTRAINT,INDEX,TABLE_STATISTICS,TRIGGER,REFRESH_GROUP
SCHEMAS = GEO,REF,TOPO
6. Verify import by fixing invalid objects
Exec dbms_utility.compile_schema( 'GEO', compile_all => FALSE );
SELECT *
FROM DBA_OBJECTS
WHERE STATUS <> 'VALID'
ORDER BY OWNER, OBJECT_NAME;
7. Import SDE & USER schema indexes/constraints etc (this is the content of the .par file):
userid = "/@TARGETDATABASE as sysdba"
directory = dmpdir
dumpfile = ORADUMP.DMP
logfile = oraimpdp_stap3.log
SKIP_UNUSABLE_INDEXES = Y
INCLUDE = CONSTRAINT,REF_CONSTRAINT,INDEX,TABLE_STATISTICS,TRIGGER,REFRESH_GROUP
SCHEMAS = SDE,GEO,REF,TOPO
8. Update statistics
EXECUTE DBMS_STATS.GATHER_SCHEMA_STATS(ownname => 'SDE', estimate_percent => DBMS_STATS.AUTO_SAMPLE_SIZE);
EXECUTE DBMS_STATS.GATHER_SCHEMA_STATS(ownname => 'GEO', estimate_percent => DBMS_STATS.AUTO_SAMPLE_SIZE);
EXECUTE DBMS_STATS.GATHER_SCHEMA_STATS(ownname => 'REF', estimate_percent => DBMS_STATS.AUTO_SAMPLE_SIZE);
EXECUTE DBMS_STATS.GATHER_SCHEMA_STATS(ownname => 'TOPO', estimate_percent => DBMS_STATS.AUTO_SAMPLE_SIZE);
You might need to remove the REFRESH_GROUP option if these objects don't exists in the dmp file. (You can just try and if you get an error just remove it)