Restrictions and Limitations
There are many significant differences between the Oracle Database and TimesTen databases. As a result, many Oracle Database DDL features cannot be mapped directly to TimesTen.
ttImportFromOracle focuses on specific areas of functionality and, as a result, has some inherent limitations. The list below highlights some of the more important caveats and limitations, but it is not a complete or definitive list.
- The database objects that can be imported are users, tables, materialized views, unique constraints, primary key constraints, foreign key constraints, and indexes. No other object types are supported.
- When importing users, the utility imports only the username. It does not import any other user attributes from Oracle Database. The generated TimesTen script assigns a default password that matches the lowercase username and grants the basic privileges
CREATE SESSIONandCREATE TABLE. If you require a different password or additional privileges, edit the script before running it. - The utility can import materialized views only as tables, not as materialized views. As a result, the materialized view definition and its data are imported as a regular table in TimesTen. To import materialized views as tables, specify the
-importMviews 1option. By default, the utility does not import materialized views. - Oracle Database supports circular and self-referencing foreign keys, whereas TimesTen does not.
ttImportFromOracledetects circular and self-referencing foreign keys and, if foreign key import is enabled, imports them as non-unique indexes. The utility also issues a warning when this occurs. - Any foreign key constraint that does not reference a table that is being imported will not be imported as a foreign key constraint. If the
-constraints x,1option is specified, the utility imports the constraint as a non-unique index. Otherwise, it ignores the constraint. - The utility ignores any constraint that maps to an index that is not eligible for import and issues an appropriate warning message.
- TimesTen
JSONsupports values up to 4 MiB, even though Oracle supports largerJSONvalues. - The utility detects oversized
JSONvalues during analysis only when variable-length analysis is enabled by setting thevarcomponent of-typeMapto1, for example,-typeMap 1,1. - The parallel data load script
ttPDL.shdoes not take foreign key constraints into account and may fail if foreign keys are present during data loading. For this reason, it is recommended to load data before creating indexes and constraints. Alternatively, you can drop the indexes and constraints before loading the data and recreate them afterward. You can easily accomplish this by using theDropIndexes.sqlandCreateIndexes.sqlscripts generated by the utility. - Columns in Oracle Database tables that use data types not supported by TimesTen (such as user-defined types and XML types) are not imported. The utility handles these columns according to the setting of the
-onBadTypeoption. - TimesTen does not support the
TIMESTAMP WITH TIME ZONEdata type. When the utility imports a column of this type, it cannot preserve the time zone information, which is therefore lost. The-typeMap x,x,x,x,0|1option lets you choose between the default behavior (importing the column asTIMESTAMPand discarding the time zone information, with a warning) or treating the column as an unsupported data type. - Column
DEFAULTvalue clauses are not imported. - The utility imports only regular and bitmap indexes. It ignores all other index types. An option is provided to convert bitmap indexes to range indexes (this is the default).
- Only constraints in an
ENABLEDandVALIDATEDstate are imported. - Only indexes in
VALIDandVISIBLEstate are imported. - Oracle Database allows duplicate indexes (same set of columns in the same order) to be created on a table, whereas TimesTen does not. By default,
ttImportFromOraclesuppresses all but one of any duplicate indexes. You can disable this behavior by setting thenodupsparameter of the-indexesoption to0(-indexes x,x,x,0). However, if duplicate indexes are present, you should expect errors when running theCreateIndexes.sqlscript.