Я бы предложил Data Pump .
Сначала с помощью насоса экспорта данных экспортируем таблицу. На следующем шаге импортируйте его (используя Импорт данных - кто бы мог догадаться?), Используя параметр REMAP_TABLE
.
Вот простой пример, основанный на таблице EMP Скотта (я удалил лишние строки, чтобы их было легче читать):
Экспорт:
c:\Temp>expdp scott/tiger@xe tables=emp directory=ext_dir dumpfile=emp.dmp
Export: Release 11.2.0.2.0 - Production on Pon Tra 30 14:45:18 2018
Starting "SCOTT"."SYS_EXPORT_TABLE_01": scott/********@xe tables=emp directory=ext_dir dumpfile=emp.dmp
Estimate in progress using BLOCKS method...
Processing object type TABLE_EXPORT/TABLE/TABLE_DATA
Total estimation using BLOCKS method: 64 KB
Processing object type TABLE_EXPORT/TABLE/TABLE
Processing object type TABLE_EXPORT/TABLE/INDEX/INDEX
Processing object type TABLE_EXPORT/TABLE/CONSTRAINT/CONSTRAINT
Processing object type TABLE_EXPORT/TABLE/INDEX/STATISTICS/INDEX_STATISTICS
Processing object type TABLE_EXPORT/TABLE/CONSTRAINT/REF_CONSTRAINT
Processing object type TABLE_EXPORT/TABLE/STATISTICS/TABLE_STATISTICS
. . exported "SCOTT"."EMP" 8.484 KB 12 rows
Master table "SCOTT"."SYS_EXPORT_TABLE_01" successfully loaded/unloaded
******************************************************************************
Dump file set for SCOTT.SYS_EXPORT_TABLE_01 is:
C:\TEMP\EMP.DMP
Job "SCOTT"."SYS_EXPORT_TABLE_01" successfully completed at 14:45:20
c:\Temp>
Импорт:
c:\Temp>impdp scott/tiger@xe remap_table=emp:emp_bkp directory=ext_dir dumpfile=emp.dmp exclude=constraint
Import: Release 11.2.0.2.0 - Production on Pon Tra 30 14:50:09 2018
Master table "SCOTT"."SYS_IMPORT_FULL_01" successfully loaded/unloaded
Starting "SCOTT"."SYS_IMPORT_FULL_01": scott/********@xe remap_table=emp:emp_bkp directory=ext_dir dumpfile=emp.dmp exc
lude=constraint
Processing object type TABLE_EXPORT/TABLE/TABLE
Processing object type TABLE_EXPORT/TABLE/TABLE_DATA
. . imported "SCOTT"."EMP_BKP" 8.484 KB 12 rows
Processing object type TABLE_EXPORT/TABLE/INDEX/INDEX
ORA-31684: Object type INDEX:"SCOTT"."PK_EMP" already exists
Processing object type TABLE_EXPORT/TABLE/INDEX/STATISTICS/INDEX_STATISTICS
ORA-39111: Dependent object type INDEX_STATISTICS skipped, base object type INDEX:"SCOTT"."PK_EMP" already exists
Processing object type TABLE_EXPORT/TABLE/STATISTICS/TABLE_STATISTICS
Job "SCOTT"."SYS_IMPORT_FULL_01" completed with 2 error(s) at 14:50:11
c:\Temp>
Обратите внимание, что создание ограничения первичного ключа не выполнено, поскольку ограничение с таким именем уже существует в исходной таблице.
Результат:
c:\Temp>sqlplus scott/tiger@xe
SQL> select * From emp_Bkp;
EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO
---------- ---------- --------- ---------- ---------- ---------- ---------- ----------
7369 SMITH CLERK 7902 17.12.1980 800 20
7499 ALLEN SALESMAN 7698 20.02.1981 1600 300 30
7521 WARD SALESMAN 7698 22.02.1981 1250 500 30
7566 JONES MANAGER 7839 02.04.1981 2975 20
7654 MARTIN SALESMAN 7698 28.09.1981 1250 1400 30
7698 BLAKE MANAGER 7839 01.05.1981 2850 30
7782 CLARK MANAGER 7839 09.06.1981 2450 10
7839 KING PRESIDENT 17.11.1981 5000 10
7844 TURNER SALESMAN 7698 08.09.1981 1500 0 30
7900 JAMES CLERK 7698 03.12.1981 950 30
7902 FORD ANALYST 7566 03.12.1981 3000 20
7934 MILLER CLERK 7782 23.01.1982 1300 10
12 rows selected.
SQL>
Еще раз, две команды, которые вы должны использовать:
expdp scott/tiger@xe tables=emp directory=ext_dir dumpfile=emp.dmp
impdp scott/tiger@xe remap_table=emp:emp_bkp directory=ext_dir dumpfile=emp.dmp exclude=constraint
Попробуйте, посмотрите, как это работает.