{"id":3874,"date":"2014-08-26T08:04:00","date_gmt":"2014-08-26T06:04:00","guid":{"rendered":"https:\/\/www.dbi-services.com\/blog\/how-to-remap-tablespaces-with-oracle-importexport-tool\/"},"modified":"2014-08-26T08:04:00","modified_gmt":"2014-08-26T06:04:00","slug":"how-to-remap-tablespaces-with-oracle-importexport-tool","status":"publish","type":"post","link":"https:\/\/www.dbi-services.com\/blog\/how-to-remap-tablespaces-with-oracle-importexport-tool\/","title":{"rendered":"How to remap tablespaces using Oracle Import\/Export Tool"},"content":{"rendered":"<p>Since Oracle 10g, Oracle provides a great tool to import and export data from databases: Data Pump. This tool offers several helpful options, particularly one that allows to import data in a different tablespace than the source database. This parameter is REMAP_TABLESPACE. However, how can you do the same when you cannot use Data Pump to perform Oracle import and export operations?<\/p>\n<p>I was confronted with this issue recently, and I had to deal with different workarounds to accomplish my import successfully. The main case where you will not be able to use Datapump is when you want to export data from a pre-10g database. And believe me, there are still a lot more of these databases running over the world than we think! The Oracle Import\/Export utility does not provide a built-in way to remap tablespace like Datapump. In this blog posting, I will address the different workarounds to import data in a different tablespace with the Oracle Import Export Tool.<\/p>\n<p>I have used an Oracle 11g R2 database for all examples.<\/p>\n<p>My source schema &#8216;MSC&#8217; on the Oracle Database DB11G is using the default tablespace USERS. I want to import the data to a different schema &#8216;DBI&#8217; using the USER_DATA tablespace.<\/p>\n<p>The objects contained in the source schema are as follows:<\/p>\n<pre class=\"brush: sql; gutter: true; first-line: 1\">SQL&gt; select object_type, object_name from dba_objects where owner='MSC';\nOBJECT_TYPE\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 OBJECT_NAME\n------------------- ----------------------------------------------------\nSEQUENCE\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 MSCSEQ\nTABLE\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 USER_DATA\nTABLE\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 USER_DOCUMENTS\nINDEX\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 SYS_IL0000064679C00003$$\nLOB\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 SYS_LOB0000064679C00003$$\nINDEX\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 PK_DATAID\nINDEX\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 PK_DOCID<\/pre>\n<p>I will now export the schema MSC using exp:<\/p>\n<pre class=\"brush: actionscript3; gutter: true; first-line: 1\">[oracle@srvora01 dpdump]$ exp msc\/Passw0rd file=exp_MSC.dmp log=exp_MSC.log consistent=y\nExport: Release 11.2.0.3.0 - Production on Tue Aug 12 14:40:44 2014Copyright (c) 1982, 2011, Oracle and\/or its affiliates.\u00a0 All rights reserved.\nConnected to: Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 - 64bit Production\nWith the Partitioning, OLAP, Data Mining and Real Application Testing options\nExport done in AL32UTF8 character set and AL16UTF16 NCHAR character set. exporting pre-schema procedural objects and actions\n. exporting foreign function library names for user MSC\n. exporting PUBLIC type synonyms\n. exporting private type synonyms\n. exporting object type definitions for user MSC\nAbout to export MSC's objects ...\n. exporting database links\n. exporting sequence numbers\n. exporting cluster definitions\n. about to export MSC's tables via Conventional Path ...\n. . exporting table\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 USER_DATA\u00a0\u00a0\u00a0\u00a0\u00a0 99000 rows exported\n. . exporting table\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 USER_DOCUMENTS\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 25 rows exported\n. exporting synonyms\n. exporting views\n. exporting stored procedures\n. exporting operators\n. exporting referential integrity constraints\n. exporting triggers\n. exporting indextypes\n. exporting bitmap, functional and extensible indexes\n. exporting posttables actions\n. exporting materialized views\n. exporting snapshot logs\n. exporting job queues\n. exporting refresh groups and children\n. exporting dimensions\n. exporting post-schema procedural objects and actions\n. exporting statistics\nExport terminated successfully without warnings.<\/pre>\n<p>I tried different ways to accomplish the tablespace remapping with imp. They are summarized below.<\/p>\n<h3>Revoke quota on USERS tablespace for the destination schema<\/h3>\n<p>I have read somewhere that a workaround could be to revoke UNLIMITED TABLESPACE (if granted) and any quota on USERS tablespace for the destination schema, and to grant UNLIMITED QUOTA on the target tablespace only (USER_DATA). This way, imp tool is supposed to import all objects into the schema default tablespace.<\/p>\n<p>Let&#8217;s try this. I have created the destination schema with the right default tablespace and temporary tablespace and the required privileges:<\/p>\n<pre class=\"brush: sql; gutter: true; first-line: 1\">SQL&gt; create user DBI identified by Passw0rd default tablespace USER_DATA temporary tablespace TEMP quota unlimited on USER_DATA;\nUser created.\n\u00a0SQL&gt; grant create session, create table to DBI;\nGrant succeeded.<\/pre>\n<p>The privilege UNLIMITED TABLESPACE is not granted to DBI user. Now, I will try to run the import:<\/p>\n<pre class=\"brush: actionscript3; gutter: true; first-line: 1\">[oracle@srvora01 dpdump]$ imp system\/Passw0rd file=exp_MSC.dmp log=imp_to_DBI.log fromuser=msc touser=dbi\nImport: Release 11.2.0.3.0 - Production on Tue Aug 12 14:53:47 2014\nCopyright (c) 1982, 2011, Oracle and\/or its affiliates.\u00a0 All rights reserved.\nConnected to: Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 - 64bit Production\nWith the Partitioning, OLAP, Data Mining and Real Application Testing options\nExport file created by EXPORT:V11.02.00 via conventional path\nWarning: the objects were exported by MSC, not by you\nexport done in AL32UTF8 character set and AL16UTF16 NCHAR character set\n. importing MSC's objects into DBI\n<span style=\"color: #00ff00\">. . importing table\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \"USER_DATA\"\u00a0\u00a0\u00a0\u00a0\u00a0 99000 rows imported<\/span>\n<span style=\"color: #ff0000\">IMP-00017: following statement failed with ORACLE error 1950:<\/span>\n<span style=\"color: #ff0000\">\u00a0\"CREATE TABLE \"USER_DOCUMENTS\" (\"DOC_ID\" NUMBER, \"DOC_TITLE\" VARCHAR2(25), \"\"<\/span>\n<span style=\"color: #ff0000\">\u00a0\"DOC_VALUE\" BLOB)\u00a0 PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 STORAGE(INI\"<\/span>\n<span style=\"color: #ff0000\">\u00a0\"TIAL 65536 NEXT 1048576 MINEXTENTS 1 FREELISTS 1 FREELIST GROUPS 1 BUFFER_P\"<\/span>\n<span style=\"color: #ff0000\">\u00a0\"OOL DEFAULT) TABLESPACE \"USERS\" LOGGING NOCOMPRESS LOB (\"DOC_VALUE\") STORE \"<\/span>\n<span style=\"color: #ff0000\">\u00a0\"AS BASICFILE\u00a0 (TABLESPACE \"USERS\" ENABLE STORAGE IN ROW CHUNK 8192 RETENTIO\"<\/span>\n<span style=\"color: #ff0000\">\u00a0\"N\u00a0 NOCACHE LOGGING\u00a0 STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 FREELIS\"<\/span>\n<span style=\"color: #ff0000\">\u00a0\"TS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT))\"<\/span>\n<span style=\"color: #ff0000\">IMP-00003: ORACLE error 1950 encountered<\/span>\n<span style=\"color: #ff0000\">ORA-01950: no privileges on tablespace 'USERS'<\/span>\nImport terminated successfully with warnings.<\/pre>\n<p>The import has worked only for a part of the objects. As we can see, it seems that the table app_documents, containing a BLOB column, has not been imported. All objects associated to this table are not imported:<\/p>\n<pre class=\"brush: sql; gutter: true; first-line: 1\">SQL&gt; select object_type, object_name from dba_objects where owner='DBI';\nOBJECT_TYPE\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 OBJECT_NAME\n------------------- ----------------------------------------------------\nTABLE\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 USER_DATA\nSEQUENCE\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 MSCSEQ\nINDEX\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 PK_DATAID<\/pre>\n<p>With no quota on the source tablespace, imp tool imports data in the target schema default tablespace, but LOBS are not supported.<\/p>\n<h3>Drop USERS tablespace prior to import data<\/h3>\n<p>Another method could be to drop the source tablespace, to be sure that the import tool does not try to import data in the USERS tablespace.<\/p>\n<p>In this example, I will drop the USERS tablespace and try to import data again with the same command. Note that I have previously dropped the MSC and DBI schemas prior to dropping the USERS tablespace.<\/p>\n<pre class=\"brush: sql; gutter: true; first-line: 1\">SQL&gt; alter database default tablespace SYSTEM;\nDatabase altered.\n\u00a0\nSQL&gt; drop tablespace USERS including contents and datafiles;\nTablespace dropped.<\/pre>\n<p>I will now recreate the empty DBI schema, as shown in example 1:<\/p>\n<pre class=\"brush: sql; gutter: true; first-line: 1\">SQL&gt; create user DBI identified by Passw0rd default tablespace USER_DATA temporary tablespace TEMP quota unlimited on USER_DATA;\nUser created.\u00a0\n\u00a0\nSQL&gt; grant create session, create table to DBI;\nGrant succeeded.<\/pre>\n<p>Now let&#8217;s try to import the data again from the dump file:<\/p>\n<pre class=\"brush: actionscript3; gutter: true; first-line: 1\">oracle@srvora01:\/u00\/app\/oracle\/admin\/DB11G\/dpdump\/ [DB11G] imp system\/Passw0rd file=exp_MSC.dmp log=imp_to_DBI.log fromuser=msc touser=dbi\nImport: Release 11.2.0.3.0 - Production on Tue Aug 12 17:03:50 2014\nCopyright (c) 1982, 2011, Oracle and\/or its affiliates.\u00a0 All rights reserved.\nConnected to: Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 - 64bit Production\nWith the Partitioning, OLAP, Data Mining and Real Application Testing options\nExport file created by EXPORT:V11.02.00 via conventional path\nWarning: the objects were exported by MSC, not by you\nimport done in AL32UTF8 character set and AL16UTF16 NCHAR character set\n. importing MSC's objects into DBI\n<span style=\"color: #00ff00\">. . importing table\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \"USER_DATA\"\u00a0\u00a0\u00a0\u00a0\u00a0 99000 rows imported<\/span>\nIMP-00017: following statement failed with ORACLE error 959:\n\u00a0\"CREATE TABLE \"USER_DOCUMENTS\" (\"DOC_ID\" NUMBER, \"DOC_TITLE\" VARCHAR2(25), \"\"\n\u00a0\"DOC_VALUE\" BLOB)\u00a0 PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 STORAGE(INI\"\n\u00a0\"TIAL 65536 NEXT 1048576 MINEXTENTS 1 FREELISTS 1 FREELIST GROUPS 1 BUFFER_P\"\n\u00a0\"OOL DEFAULT) TABLESPACE \"USERS\" LOGGING NOCOMPRESS LOB (\"DOC_VALUE\") STORE \"\n\u00a0\"AS BASICFILE\u00a0 (TABLESPACE \"USERS\" ENABLE STORAGE IN ROW CHUNK 8192 RETENTIO\"\n\u00a0\"N\u00a0 NOCACHE LOGGING\u00a0 STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 FREELIS\"\n\u00a0\"TS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT))\"\nIMP-00003: ORACLE error 959 encountered\n<span style=\"color: #ff0000\">ORA-00959: tablespace 'USERS' does not exist<\/span>\nImport terminated successfully with warnings.<\/pre>\n<p>You can see that we have still have an error when importing the USER_DOCUMENTS table, but this time the error says &#8220;Tablespace USERS does not exist&#8221;. So, whatever we do, imp tool tries to import LOBS in the same tablespace. But other data is imported in the new DEFAULT tablespace of the schema.<\/p>\n<p>We can say that imp has the same behavior no matter whether we revoke the quota on the source tablespace or whether we drop it. Clearly, LOBs are not supported by this method. But if you have a database with standard data, these two methods would help you to remap the tablespace at import time.<\/p>\n<h3>Pre-create objects in the new tablespace using the INDEXFILE option<\/h3>\n<p>Imp tool provides the option INDEXFILE which corresponds to the METADATA ONLY with expdp. There is one difference: while impdp directly creates object structures\u00a0with METADATA_ONLY=Y in the database without any data, imp\u00a0with the INDEXFILE option will just generate an sql file with all CREATE statements (tables, indexes etc.) and you will have to manually run this file with sqlplus to create the empty objects.<\/p>\n<p>As you may expect (or not), this SQL file will allow you to change the tablespace name when objects have to be created, prior to importing data. The inconvenience is that several manual steps are involved in this workaround &#8211; the solution is described below.<\/p>\n<h4>1) Generate the SQL file<\/h4>\n<pre class=\"brush: actionscript3; gutter: true; first-line: 1\">oracle@srvora01:\/u00\/app\/oracle\/admin\/DB11G\/dpdump\/ [DB11G] imp system\/Passw0rd file=exp_MSC.dmp log=imp_to_DBI.log fromuser=msc touser=dbi <span style=\"color: #ff0000\">indexfile=imp_to_DBI.sql<\/span>\nImport: Release 11.2.0.3.0 - Production on Tue Aug 12 18:04:13 2014\nCopyright (c) 1982, 2011, Oracle and\/or its affiliates.\u00a0 All rights reserved.\nConnected to: Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 - 64bit Production\nWith the Partitioning, OLAP, Data Mining and Real Application Testing options\nExport file created by EXPORT:V11.02.00 via conventional path\nWarning: the objects were exported by MSC, not by you\nimport done in AL32UTF8 character set and AL16UTF16 NCHAR character set\n. . skipping table \"USER_DATA\"\n. . skipping table \"USER_DOCUMENTS\"\nImport terminated successfully without warnings.<\/pre>\n<h4>2) Edit the SQL file<\/h4>\n<p>In this file, you will have two modifications to do. First, remove all REM keywords from the CREATE statements. All rows are created as a comment in the file. Then, change the tablespace name for all objects you want to create on a different tablespace.<\/p>\n<p>This is how my SQL file looks like after the modifications:<\/p>\n<pre class=\"brush: actionscript3; gutter: true; first-line: 1\">oracle@srvora01:\/u00\/app\/oracle\/admin\/DB11G\/dpdump\/ [DB11G] cat imp_to_DBI.sqlCREATE TABLE \"DBI\".\"USER_DATA\" (\"DATA_ID\" NUMBER, \"DATA_VALUE\"\n VARCHAR2(250)) PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255\n STORAGE(INITIAL 16777216 NEXT 1048576 MINEXTENTS 1 FREELISTS 1\n FREELIST GROUPS 1 BUFFER_POOL DEFAULT) TABLESPACE \"USER_DATA\" LOGGING\n NOCOMPRESS ;\n REM\u00a0 ... 99000 rows\n CONNECT DBI;\n CREATE UNIQUE INDEX \"DBI\".\"PK_DATAID\" ON \"USER_DATA\" (\"DATA_ID\" ) PCTFREE\n 10 INITRANS 2 MAXTRANS 255 STORAGE(INITIAL 2097152 NEXT 1048576 MINEXTENTS\n 1 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT) TABLESPACE \"USER_DATA\"\n LOGGING ;\n ALTER TABLE \"DBI\".\"USER_DATA\" ADD CONSTRAINT \"PK_DATAID\" PRIMARY KEY\n (\"DATA_ID\") USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255\n STORAGE(INITIAL 2097152 NEXT 1048576 MINEXTENTS 1 FREELISTS 1\n FREELIST GROUPS 1 BUFFER_POOL DEFAULT) TABLESPACE \"USER_DATA\" LOGGING\n ENABLE ;\n CREATE TABLE \"DBI\".\"USER_DOCUMENTS\" (\"DOC_ID\" NUMBER, \"DOC_TITLE\"\n VARCHAR2(25), \"DOC_VALUE\" BLOB) PCTFREE 10 PCTUSED 40 INITRANS 1\n MAXTRANS 255 STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1\n FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT) TABLESPACE \"USER_DATA\"\n LOGGING NOCOMPRESS LOB (\"DOC_VALUE\") STORE AS BASICFILE (TABLESPACE\n \"USER_DATA\" ENABLE STORAGE IN ROW CHUNK 8192 RETENTION NOCACHE LOGGING\n STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 FREELISTS 1 FREELIST\n GROUPS 1 BUFFER_POOL DEFAULT)) ;\n REM\u00a0 ... 25 rows\n CREATE UNIQUE INDEX \"DBI\".\"PK_DOCID\" ON \"USER_DOCUMENTS\" (\"DOC_ID\" )\n PCTFREE 10 INITRANS 2 MAXTRANS 255 STORAGE(INITIAL 65536 NEXT 1048576\n MINEXTENTS 1 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT) TABLESPACE\n \"USER_DATA\" LOGGING ;\n ALTER TABLE \"DBI\".\"USER_DOCUMENTS\" ADD CONSTRAINT \"PK_DOCID\" PRIMARY\n KEY (\"DOC_ID\") USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255\n STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 FREELISTS 1 FREELIST\n GROUPS 1 BUFFER_POOL DEFAULT) TABLESPACE \"USER_DATA\" LOGGING ENABLE ;\n ALTER TABLE \"DBI\".\"USER_DOCUMENTS\" ADD CONSTRAINT \"FK_DOCID\" FOREIGN\n KEY (\"DOC_ID\") REFERENCES \"USER_DATA\" (\"DATA_ID\") ENABLE NOVALIDATE ;\n ALTER TABLE \"DBI\".\"USER_DOCUMENTS\" ENABLE CONSTRAINT \"FK_DOCID\" ;<\/pre>\n<h4>3) Execute the SQL file with SQL Plus<\/h4>\n<p>Simply use SQL Plus to execute the SQL file (the user DBI must exist prior to running the script):<\/p>\n<pre class=\"brush: actionscript3; gutter: true; first-line: 1\">oracle@srvora01:\/u00\/app\/oracle\/admin\/DB11G\/dpdump\/ [DB11G] <strong>sqlplus \/ as sysdba @imp_to_DBI.sql<\/strong>\nSQL*Plus: Release 11.2.0.3.0 Production on Tue Aug 12 18:13:14 2014\nCopyright (c) 1982, 2011, Oracle.\u00a0 All rights reserved.\nConnected to:\nOracle Database 11g Enterprise Edition Release 11.2.0.3.0 - 64bit Production\nWith the Partitioning, OLAP, Data Mining and Real Application Testing options<\/pre>\n<pre class=\"brush: actionscript3; gutter: true; first-line: 1\">Table created.\n\u00a0\nEnter password:\nConnected.\n\u00a0\nIndex created.\n\u00a0\nTable altered.\n\u00a0\nTable created.\n\u00a0\nIndex created.\n\u00a0\nTable altered.\n\u00a0\nTable altered.\n\u00a0\nTable altered.<\/pre>\n<p>&nbsp;<\/p>\n<pre class=\"brush: sql; gutter: true; first-line: 1\">SQL&gt; select object_type, object_name from user_objects;\nOBJECT_TYPE\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 OBJECT_NAME\n------------------- -----------------------------------\nINDEX\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 PK_DATAID\nTABLE\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 USER_DOCUMENTS\nTABLE\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 USER_DATA\nINDEX\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 SYS_IL0000064697C00003$$\nLOB\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 SYS_LOB0000064697C00003$$\nINDEX\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 PK_DOCID<\/pre>\n<p>&nbsp;<\/p>\n<h4>4) Disable all constraints<\/h4>\n<p>When importing data with imp or impdp tools, constraints are created and enabled at the end of the import. This allows Oracle to import data without taking into account any referential integrity constrainst. As we already have created empty objects with enabled constraints, we must manually disable the constraints before importing the data.<\/p>\n<pre class=\"brush: sql; gutter: true; first-line: 1\">SQL&gt; select 'ALTER TABLE ' || OWNER || '.' || TABLE_NAME || ' DISABLE CONSTRAINT ' || CONSTRAINT_NAME || ';' \"SQL_CMD\" from DBA_CONSTRAINTS WHERE OWNER='DBI';\nSQL_CMD\n-----------------------------------------------------------\nALTER TABLE DBI.USER_DOCUMENTS DISABLE CONSTRAINT FK_DOCID;\nALTER TABLE DBI.USER_DATA DISABLE CONSTRAINT PK_DATAID;\nALTER TABLE DBI.USER_DOCUMENTS DISABLE CONSTRAINT PK_DOCID;\n\u00a0\nSQL&gt; ALTER TABLE DBI.USER_DOCUMENTS DISABLE CONSTRAINT FK_DOCID;\nTable altered.\n\u00a0\nSQL&gt; ALTER TABLE DBI.USER_DATA DISABLE CONSTRAINT PK_DATAID;\nTable altered.\n\u00a0\nSQL&gt; ALTER TABLE DBI.USER_DOCUMENTS DISABLE CONSTRAINT PK_DOCID;\nTable altered.<\/pre>\n<h4>5) Import the data with the IGNORE=Y option<\/h4>\n<p>Now we must import the data from the dump file using the IGNORE=Y option to ignore warnings about already existing objects. It will allow the imp tool to load data to the empty tables and indexes. Additionaly, I have set the CONSTRAINTS=N option because imp tried to enable the constraints after the import, which was generating an error&#8230;<\/p>\n<pre class=\"brush: actionscript3; gutter: true; first-line: 1\">oracle@srvora01:\/u00\/app\/oracle\/admin\/DB11G\/dpdump\/ [DB11G] <strong>imp system\/Passw0rd file=exp_MSC.dmp log=imp_to_DBI.log fromuser=msc touser=dbi ignore=y constraints=n<\/strong>\nImport: Release 11.2.0.3.0 - Production on Tue Aug 12 19:43:59 2014\nCopyright (c) 1982, 2011, Oracle and\/or its affiliates.\u00a0 All rights reserved.\nConnected to: Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 - 64bit Production\nWith the Partitioning, OLAP, Data Mining and Real Application Testing options\nExport file created by EXPORT:V11.02.00 via conventional path\nWarning: the objects were exported by MSC, not by you\nimport done in AL32UTF8 character set and AL16UTF16 NCHAR character set\n. importing MSC's objects into DBI\n. . importing table\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \"USER_DATA\"\u00a0\u00a0\u00a0\u00a0\u00a0 99000 rows imported\n. . importing table\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \"USER_DOCUMENTS\"\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 25 rows imported\nAbout to enable constraints...\nImport terminated successfully without warnings.<\/pre>\n<p>All objects have been imported successfully:<\/p>\n<pre class=\"brush: sql; gutter: true; first-line: 1\">SQL&gt; select object_type, object_name from dba_objects where owner='DBI';\nOBJECT_TYPE\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 OBJECT_NAME\n------------------- ----------------------------------------------------\nINDEX\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 PK_DATAID\nTABLE\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 USER_DATA\nTABLE\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 USER_DOCUMENTS\nINDEX\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 SYS_IL0000064704C00003$$\nLOB\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 SYS_LOB0000064704C00003$$\nINDEX\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 PK_DOCID\nSEQUENCE\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 MSCSEQ<\/pre>\n<h4>6) Enable constraints after the import<\/h4>\n<p>Constraints previously disabled must be enabled again to finish the import:<\/p>\n<pre class=\"brush: sql; gutter: true; first-line: 1\">SQL&gt; select constraint_name, status from dba_constraints where owner='DBI';CONSTRAINT_NAME\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 STATUS\n------------------------------ --------\nFK_DOCID\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 DISABLED\nPK_DOCID\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 DISABLED\nPK_DATAID\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 DISABLED\n\u00a0\nSQL&gt; select 'ALTER TABLE ' || OWNER || '.' || TABLE_NAME || ' ENABLE CONSTRAINT ' || CONSTRAINT_NAME || ';' \"SQL_CMD\" from DBA_CONSTRAINTS WHERE OWNER='DBI';\nSQL_CMD\n--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------\nALTER TABLE DBI.USER_DOCUMENTS ENABLE CONSTRAINT FK_DOCID;\nALTER TABLE DBI.USER_DOCUMENTS ENABLE CONSTRAINT PK_DOCID;\nALTER TABLE DBI.USER_DATA ENABLE CONSTRAINT PK_DATAID;<\/pre>\n<p>Enable PRIMARY KEYS:<\/p>\n<pre class=\"brush: sql; gutter: true; first-line: 1\">SQL&gt; ALTER TABLE DBI.USER_DOCUMENTS ENABLE CONSTRAINT PK_DOCID;\nTable altered.\n\u00a0\nSQL&gt; ALTER TABLE DBI.USER_DATA ENABLE CONSTRAINT PK_DATAID;\nTable altered.<\/pre>\n<p>And then FOREIGN KEY:<\/p>\n<pre class=\"brush: sql; gutter: true; first-line: 1\">SQL&gt; ALTER TABLE DBI.USER_DOCUMENTS ENABLE CONSTRAINT FK_DOCID;\nTable altered.<\/pre>\n<p>Constraints are now enabled:<\/p>\n<pre class=\"brush: sql; gutter: true; first-line: 1\">SQL&gt; select constraint_name, status from dba_constraints where owner='DBI';CONSTRAINT_NAME\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 STATUS\n------------------------------ --------\nFK_DOCID\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 ENABLED\nPK_DATAID\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 ENABLED\nPK_DOCID\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 ENABLED<\/pre>\n<p>&nbsp;<\/p>\n<p>We do not have to carry on quota on tablespaces here. As you can see, even if I have recreated my USERS tablespace prior to importing the data with the INDEXFILE option, the USERS tablespace contains no segment after the import:<\/p>\n<pre class=\"brush: sql; gutter: true; first-line: 1\">SQL&gt; select segment_name from dba_segments where tablespace_name='USERS';\nno rows selected<\/pre>\n<h3>Conclusion<\/h3>\n<p>Workaround 1 and 2, which are very similar, are simple and fast methods to remap tablespaces for import into a database without any LOB data. But in the presence of LOB data, the workaround 3 is the right method to successfully move every object of the database into the new database. The major constraint of this workaround is that you will have to manually edit an SQL file, which can become very fastidious if you have several hundred or thousand of objects to migrate&#8230;<\/p>\n<p>It is also possible to first import the data in the same tablespac, and then use the MOVE statement to move all objects into the new tablespac. However, you may not be able to move ALL objects this way. Workaround 3 seems to be the best and &#8220;cleanest&#8221; way to do it.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Since Oracle 10g, Oracle provides a great tool to import and export data from databases: Data Pump. This tool offers several helpful options, particularly one that allows to import data in a different tablespace than the source database. This parameter is REMAP_TABLESPACE. However, how can you do the same when you cannot use Data Pump [&hellip;]<\/p>\n","protected":false},"author":27,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[198],"tags":[240,33,17,470,471],"type_dbi":[],"class_list":["post-3874","post","type-post","status-publish","format-standard","hentry","category-database-management","tag-data-pump","tag-oracle-10g-to-8i","tag-oracle-11g","tag-oracle-import-export","tag-remap_tablespace"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v27.2 (Yoast SEO v27.2) - https:\/\/yoast.com\/product\/yoast-seo-premium-wordpress\/ -->\n<title>How to remap tablespaces using Oracle Import\/Export Tool - dbi Blog<\/title>\n<meta name=\"description\" content=\"Since Oracle 10g, Oracle provides a great tool to import and export data from databases: Data Pump. This tool offers several helpful options, particularly one that allows to import data in a different tablespace than the source database. This parameter is REMAP_TABLESPACE. However, how can you do the same when you cannot use Data Pump to perform Oracle import and export operations?\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.dbi-services.com\/blog\/how-to-remap-tablespaces-with-oracle-importexport-tool\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"How to remap tablespaces using Oracle Import\/Export Tool\" \/>\n<meta property=\"og:description\" content=\"Since Oracle 10g, Oracle provides a great tool to import and export data from databases: Data Pump. This tool offers several helpful options, particularly one that allows to import data in a different tablespace than the source database. This parameter is REMAP_TABLESPACE. However, how can you do the same when you cannot use Data Pump to perform Oracle import and export operations?\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.dbi-services.com\/blog\/how-to-remap-tablespaces-with-oracle-importexport-tool\/\" \/>\n<meta property=\"og:site_name\" content=\"dbi Blog\" \/>\n<meta property=\"article:published_time\" content=\"2014-08-26T06:04:00+00:00\" \/>\n<meta name=\"author\" content=\"Oracle Team\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Oracle Team\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"14 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/www.dbi-services.com\/blog\/how-to-remap-tablespaces-with-oracle-importexport-tool\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.dbi-services.com\/blog\/how-to-remap-tablespaces-with-oracle-importexport-tool\/\"},\"author\":{\"name\":\"Oracle Team\",\"@id\":\"https:\/\/www.dbi-services.com\/blog\/#\/schema\/person\/66ab87129f2d357f09971bc7936a77ee\"},\"headline\":\"How to remap tablespaces using Oracle Import\/Export Tool\",\"datePublished\":\"2014-08-26T06:04:00+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.dbi-services.com\/blog\/how-to-remap-tablespaces-with-oracle-importexport-tool\/\"},\"wordCount\":1163,\"commentCount\":0,\"keywords\":[\"Data pump\",\"Oracle 10g to 8i\",\"Oracle 11g\",\"Oracle Import Export\",\"Remap_tablespace\"],\"articleSection\":[\"Database management\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/www.dbi-services.com\/blog\/how-to-remap-tablespaces-with-oracle-importexport-tool\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.dbi-services.com\/blog\/how-to-remap-tablespaces-with-oracle-importexport-tool\/\",\"url\":\"https:\/\/www.dbi-services.com\/blog\/how-to-remap-tablespaces-with-oracle-importexport-tool\/\",\"name\":\"How to remap tablespaces using Oracle Import\/Export Tool - dbi Blog\",\"isPartOf\":{\"@id\":\"https:\/\/www.dbi-services.com\/blog\/#website\"},\"datePublished\":\"2014-08-26T06:04:00+00:00\",\"author\":{\"@id\":\"https:\/\/www.dbi-services.com\/blog\/#\/schema\/person\/66ab87129f2d357f09971bc7936a77ee\"},\"description\":\"Since Oracle 10g, Oracle provides a great tool to import and export data from databases: Data Pump. This tool offers several helpful options, particularly one that allows to import data in a different tablespace than the source database. This parameter is REMAP_TABLESPACE. However, how can you do the same when you cannot use Data Pump to perform Oracle import and export operations?\",\"breadcrumb\":{\"@id\":\"https:\/\/www.dbi-services.com\/blog\/how-to-remap-tablespaces-with-oracle-importexport-tool\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.dbi-services.com\/blog\/how-to-remap-tablespaces-with-oracle-importexport-tool\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.dbi-services.com\/blog\/how-to-remap-tablespaces-with-oracle-importexport-tool\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Accueil\",\"item\":\"https:\/\/www.dbi-services.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"How to remap tablespaces using Oracle Import\/Export Tool\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.dbi-services.com\/blog\/#website\",\"url\":\"https:\/\/www.dbi-services.com\/blog\/\",\"name\":\"dbi Blog\",\"description\":\"\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.dbi-services.com\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.dbi-services.com\/blog\/#\/schema\/person\/66ab87129f2d357f09971bc7936a77ee\",\"name\":\"Oracle Team\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/secure.gravatar.com\/avatar\/f711f7cd2c9b09bf2627133755b569fb5be0694810cfd33033bdd095fedba86d?s=96&d=mm&r=g\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/f711f7cd2c9b09bf2627133755b569fb5be0694810cfd33033bdd095fedba86d?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/f711f7cd2c9b09bf2627133755b569fb5be0694810cfd33033bdd095fedba86d?s=96&d=mm&r=g\",\"caption\":\"Oracle Team\"},\"url\":\"https:\/\/www.dbi-services.com\/blog\/author\/oracle-team\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"How to remap tablespaces using Oracle Import\/Export Tool - dbi Blog","description":"Since Oracle 10g, Oracle provides a great tool to import and export data from databases: Data Pump. This tool offers several helpful options, particularly one that allows to import data in a different tablespace than the source database. This parameter is REMAP_TABLESPACE. However, how can you do the same when you cannot use Data Pump to perform Oracle import and export operations?","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.dbi-services.com\/blog\/how-to-remap-tablespaces-with-oracle-importexport-tool\/","og_locale":"en_US","og_type":"article","og_title":"How to remap tablespaces using Oracle Import\/Export Tool","og_description":"Since Oracle 10g, Oracle provides a great tool to import and export data from databases: Data Pump. This tool offers several helpful options, particularly one that allows to import data in a different tablespace than the source database. This parameter is REMAP_TABLESPACE. However, how can you do the same when you cannot use Data Pump to perform Oracle import and export operations?","og_url":"https:\/\/www.dbi-services.com\/blog\/how-to-remap-tablespaces-with-oracle-importexport-tool\/","og_site_name":"dbi Blog","article_published_time":"2014-08-26T06:04:00+00:00","author":"Oracle Team","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Oracle Team","Est. reading time":"14 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.dbi-services.com\/blog\/how-to-remap-tablespaces-with-oracle-importexport-tool\/#article","isPartOf":{"@id":"https:\/\/www.dbi-services.com\/blog\/how-to-remap-tablespaces-with-oracle-importexport-tool\/"},"author":{"name":"Oracle Team","@id":"https:\/\/www.dbi-services.com\/blog\/#\/schema\/person\/66ab87129f2d357f09971bc7936a77ee"},"headline":"How to remap tablespaces using Oracle Import\/Export Tool","datePublished":"2014-08-26T06:04:00+00:00","mainEntityOfPage":{"@id":"https:\/\/www.dbi-services.com\/blog\/how-to-remap-tablespaces-with-oracle-importexport-tool\/"},"wordCount":1163,"commentCount":0,"keywords":["Data pump","Oracle 10g to 8i","Oracle 11g","Oracle Import Export","Remap_tablespace"],"articleSection":["Database management"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.dbi-services.com\/blog\/how-to-remap-tablespaces-with-oracle-importexport-tool\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.dbi-services.com\/blog\/how-to-remap-tablespaces-with-oracle-importexport-tool\/","url":"https:\/\/www.dbi-services.com\/blog\/how-to-remap-tablespaces-with-oracle-importexport-tool\/","name":"How to remap tablespaces using Oracle Import\/Export Tool - dbi Blog","isPartOf":{"@id":"https:\/\/www.dbi-services.com\/blog\/#website"},"datePublished":"2014-08-26T06:04:00+00:00","author":{"@id":"https:\/\/www.dbi-services.com\/blog\/#\/schema\/person\/66ab87129f2d357f09971bc7936a77ee"},"description":"Since Oracle 10g, Oracle provides a great tool to import and export data from databases: Data Pump. This tool offers several helpful options, particularly one that allows to import data in a different tablespace than the source database. This parameter is REMAP_TABLESPACE. However, how can you do the same when you cannot use Data Pump to perform Oracle import and export operations?","breadcrumb":{"@id":"https:\/\/www.dbi-services.com\/blog\/how-to-remap-tablespaces-with-oracle-importexport-tool\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.dbi-services.com\/blog\/how-to-remap-tablespaces-with-oracle-importexport-tool\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.dbi-services.com\/blog\/how-to-remap-tablespaces-with-oracle-importexport-tool\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Accueil","item":"https:\/\/www.dbi-services.com\/blog\/"},{"@type":"ListItem","position":2,"name":"How to remap tablespaces using Oracle Import\/Export Tool"}]},{"@type":"WebSite","@id":"https:\/\/www.dbi-services.com\/blog\/#website","url":"https:\/\/www.dbi-services.com\/blog\/","name":"dbi Blog","description":"","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.dbi-services.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Person","@id":"https:\/\/www.dbi-services.com\/blog\/#\/schema\/person\/66ab87129f2d357f09971bc7936a77ee","name":"Oracle Team","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/f711f7cd2c9b09bf2627133755b569fb5be0694810cfd33033bdd095fedba86d?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/f711f7cd2c9b09bf2627133755b569fb5be0694810cfd33033bdd095fedba86d?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/f711f7cd2c9b09bf2627133755b569fb5be0694810cfd33033bdd095fedba86d?s=96&d=mm&r=g","caption":"Oracle Team"},"url":"https:\/\/www.dbi-services.com\/blog\/author\/oracle-team\/"}]}},"_links":{"self":[{"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/posts\/3874","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/users\/27"}],"replies":[{"embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/comments?post=3874"}],"version-history":[{"count":0,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/posts\/3874\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/media?parent=3874"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/categories?post=3874"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/tags?post=3874"},{"taxonomy":"type","embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/type_dbi?post=3874"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}