已连接。
SQL> CREATE USER JOBA IDENTIFIED BY JOBA;
已连接。
SQL> CREATE TABLE T AS SELECT * FROM USER_TABLES;
-------------------- ------------------ --------------
T TABLE
2 jobid NUMBER;
3 BEGIN
4 FOR X IN 1..10 LOOP
5 DBMS_JOB.SUBMIT(jobid,'NULL;',SYSDATE,'SYSDATE+1');
6 END LOOP;
7 COMMIT;
8 END;
9 /
---------- -------------------- --------------------
161 JOBA NULL;
162 JOBA NULL;
163 JOBA NULL;
164 JOBA NULL;
165 JOBA NULL;
166 JOBA NULL;
167 JOBA NULL;
168 JOBA NULL;
169 JOBA NULL;
170 JOBA NULL;
C:\>expdp joba/joba directory=data_pump_dir dumpfile=joba.dp include=job content=metadata_only
With the Partitioning, OLAP and Data Mining options
启动 "JOBA"."SYS_EXPORT_SCHEMA_01": joba/******** directory=data_pump_dir dumpf
ile=joba.dp include=job
正在使用 BLOCKS 方法进行估计...
处理对象类型 SCHEMA_EXPORT/TABLE/TABLE_DATA
使用 BLOCKS 方法的总估计: 0 KB
处理对象类型 SCHEMA_EXPORT/JOB
已成功加载/卸载了主表 "JOBA"."SYS_EXPORT_SCHEMA_01"
******************************************************************************
JOBA.SYS_EXPORT_SCHEMA_01 的转储文件集为:
C:\ORACLE\PRODUCT\10.2.0\DB_1\RDBMS\LOG\JOBA.DP
作业 "JOBA"."SYS_EXPORT_SCHEMA_01" 已于 22:55:05 成功完成。
USER 为 "JOBA"
SQL> CREATE PROCEDURE REMOVE_ALL_JOB
2 IS
3 BEGIN
4 FOR X IN (SELECT JOB FROM USER_JOBS) LOOP
5 DBMS_JOB.REMOVE(X.JOB);
6 END LOOP;
7 COMMIT;
8 END;
9 /
With the Partitioning, OLAP and Data Mining options
ORA-31655: 尚未为作业选择数据或元数据对象
ORA-39154: 外部方案中的对象已从导入中删除
已成功加载/卸载了主表 "JOBA"."SYS_IMPORT_FULL_01"
启动 "JOBA"."SYS_IMPORT_FULL_01": joba/******** directory=data_pump_dir dumpfil
e=joba.dp
作业 "JOBA"."SYS_IMPORT_FULL_01" 已于 23:00:13 成功完成。
SQL> CONN / AS SYSDBA
已连接。
SQL> GRANT DBA TO JOBA;
With the Partitioning, OLAP and Data Mining options
已成功加载/卸载了主表 "JOBA"."SYS_IMPORT_FULL_01"
启动 "JOBA"."SYS_IMPORT_FULL_01": joba/******** directory=data_pump_dir dumpfil
e=joba.dp
处理对象类型 SCHEMA_EXPORT/JOB
作业 "JOBA"."SYS_IMPORT_FULL_01" 已于 23:00:53 成功完成
连接到:
Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production
With the Partitioning, OLAP and Data Mining options
---------- ---------- ---------- ---------- --------------------
161 JOBA JOBA JOBA NULL;
162 JOBA JOBA JOBA NULL;
163 JOBA JOBA JOBA NULL;
164 JOBA JOBA JOBA NULL;
165 JOBA JOBA JOBA NULL;
166 JOBA JOBA JOBA NULL;
167 JOBA JOBA JOBA NULL;
168 JOBA JOBA JOBA NULL;
169 JOBA JOBA JOBA NULL;
170 JOBA JOBA JOBA NULL;
已连接。
USER 为 "JOBA"
SQL> EXEC REMOVE_ALL_JOB;
已连接。
SQL> GRANT CONNECT,RESOURCE TO JOBB IDENTIFIED BY JOBB;
已连接。
SQL> SELECT JOB,LOG_USER,PRIV_USER,SCHEMA_USER,WHAT FROM USER_JOBS;
已连接。
SQL> GRANT DBA TO JOBA;
Microsoft Windows XP [版本 5.1.2600]
(C) 版权所有 1985-2001 Microsoft Corp.
With the Partitioning, OLAP and Data Mining options
ORA-39146: 方案 "JOBA" 不存在
已成功加载/卸载了主表 "JOBA"."SYS_IMPORT_FULL_01"
启动 "JOBA"."SYS_IMPORT_FULL_01": joba/******** directory=data_pump_dir dumpfle=joba.dp remap_schema=
处理对象类型 SCHEMA_EXPORT/JOB
作业 "JOBA"."SYS_IMPORT_FULL_01" 已于 23:32:56 成功完成
C:\>exit
USER 为 "SYS"
已连接。
SQL> SELECT JOB,LOG_USER,PRIV_USER,SCHEMA_USER,WHAT FROM USER_JOBS;
此时连接到用户JOBA下。
SQL> CONN JOBA/JOBA
已连接。
SQL> SELECT JOB,LOG_USER,PRIV_USER,SCHEMA_USER,WHAT FROM USER_JOBS;
---------- ---------- ---------- ---------- ----------
161 JOBA JOBA JOBA NULL;
162 JOBA JOBA JOBA NULL;
163 JOBA JOBA JOBA NULL;
164 JOBA JOBA JOBA NULL;
165 JOBA JOBA JOBA NULL;
166 JOBA JOBA JOBA NULL;
167 JOBA JOBA JOBA NULL;
168 JOBA JOBA JOBA NULL;
169 JOBA JOBA JOBA NULL;
170 JOBA JOBA JOBA NULL;
impdp system/oracle directory=data_pump_dir dumpfile=joba.dp remap_schema=(joba:jobb) 则JOB将会被导入到SYSTEM用户下。这是因为JOB在导出过程中,并不会附带模式名。所以JOB在导入过程中如果加了remap_schema=(joba:jobb),将会报ORA-39164。
SQL> SHOW USER
USER 为 "JOBA"
SQL> EXEC REMOVE_ALL_JOB;
已连接。
SQL> REVOKE DBA FROM JOBA;
Microsoft Windows XP [版本 5.1.2600]
(C) 版权所有 1985-2001 Microsoft Corp.
With the Partitioning, OLAP and Data Mining options
已成功加载/卸载了主表 "JOBB"."SYS_IMPORT_FULL_01"
启动 "JOBB"."SYS_IMPORT_FULL_01": jobb/******** directory=data_pump_dir dumpfil
e=joba.dp
处理对象类型 SCHEMA_EXPORT/JOB
作业 "JOBB"."SYS_IMPORT_FULL_01" 已于 23:41:08 成功完成
C:\>exit
USER 为 "SYS"
SQL> CONN JOBB/JOBB
已连接。
SQL> SELECT JOB,LOG_USER,PRIV_USER,SCHEMA_USER,WHAT FROM USER_JOBS;
---------- ---------- ---------- ---------- ----------
161 JOBB JOBB JOBB NULL;
162 JOBB JOBB JOBB NULL;
163 JOBB JOBB JOBB NULL;
164 JOBB JOBB JOBB NULL;
165 JOBB JOBB JOBB NULL;
166 JOBB JOBB JOBB NULL;
167 JOBB JOBB JOBB NULL;
168 JOBB JOBB JOBB NULL;
169 JOBB JOBB JOBB NULL;
170 JOBB JOBB JOBB NULL;
已连接。
SQL> REVOKE DBA FROM JOBB;
可见,可见JOB的导入过程中REMAP_SCHEMP不起作用(JOB导出的转存文件中不附带模式名),JOB将会导入到执行导入操作的用户下。