替换数据库中的所有用户对象
Replace all USER Objects in a Database
我的问题与Oracle中USER的含义有关。
我们有一个包含很多用户的数据库,但是 R1S 包含几乎所有的 tables、序列等。我们想加载新的 tables 数据,但是我们还需要将序列值更新为与 table 数据同相。
ORA-31684: Object type USER:"R1S" already exists
ORA-31684: Object type SEQUENCE:"R1S"."RS2QNUNI" already exists
. . imported "R1S"."RSCIN" 13.16 MB 150346 rows
在 impdp 中,我注意到序列尚未更新,因为它们已经存在。我们想强制加载这种数据。
我想过 DROP USER R1S CASCADE;
drop 命令中使用的这个 USER 是一个 SCHEMA。使用 DROP USER 命令,我们将删除名为 R1S 的模式。
我已经说过,因为在 impdp 文档中我看到我可以强制导入 schme:
SCHEMAS=R1S
或者基本命令会做同样的工作?
impdp xxxxxx/******** FULL=Y CONTENT=ALL directory=EXPLOIT_DUMP_DIR dumpfile=expdp_X.exp LOGFILE=impdp_X.log
简单地说,schema = user + its objects
(表、视图、过程、序列...)所以 - 当您 drop user
时,它的所有对象也会被删除。
如果您对其余的导入结果感到满意(即表格已正确导入),并且如果那里没有那么多序列,也许
会更简单
- 重新创建序列 (
drop
+ create
),或
alter
那些序列。第一个选项很简单,而第二个选项需要一些命令。增加它以使其达到所需的值,从中获取,将增量重置为其先前的值(默认情况下为 1
)。这是一个例子:
SQL> select s.nextval from dual;
NEXTVAL
----------
15028
SQL> alter sequence s increment by 100000;
Sequence altered.
SQL> select s.nextval from dual;
NEXTVAL
----------
115028
SQL> alter sequence s increment by 1;
Sequence altered.
SQL> select s.nextval from dual;
NEXTVAL
----------
115029
SQL> select s.nextval from dual;
NEXTVAL
----------
115030
SQL>
我的问题与Oracle中USER的含义有关。 我们有一个包含很多用户的数据库,但是 R1S 包含几乎所有的 tables、序列等。我们想加载新的 tables 数据,但是我们还需要将序列值更新为与 table 数据同相。
ORA-31684: Object type USER:"R1S" already exists
ORA-31684: Object type SEQUENCE:"R1S"."RS2QNUNI" already exists
. . imported "R1S"."RSCIN" 13.16 MB 150346 rows
在 impdp 中,我注意到序列尚未更新,因为它们已经存在。我们想强制加载这种数据。
我想过 DROP USER R1S CASCADE;
drop 命令中使用的这个 USER 是一个 SCHEMA。使用 DROP USER 命令,我们将删除名为 R1S 的模式。
我已经说过,因为在 impdp 文档中我看到我可以强制导入 schme:
SCHEMAS=R1S
或者基本命令会做同样的工作?
impdp xxxxxx/******** FULL=Y CONTENT=ALL directory=EXPLOIT_DUMP_DIR dumpfile=expdp_X.exp LOGFILE=impdp_X.log
简单地说,schema = user + its objects
(表、视图、过程、序列...)所以 - 当您 drop user
时,它的所有对象也会被删除。
如果您对其余的导入结果感到满意(即表格已正确导入),并且如果那里没有那么多序列,也许
会更简单- 重新创建序列 (
drop
+create
),或 alter
那些序列。第一个选项很简单,而第二个选项需要一些命令。增加它以使其达到所需的值,从中获取,将增量重置为其先前的值(默认情况下为 1
)。这是一个例子:
SQL> select s.nextval from dual;
NEXTVAL
----------
15028
SQL> alter sequence s increment by 100000;
Sequence altered.
SQL> select s.nextval from dual;
NEXTVAL
----------
115028
SQL> alter sequence s increment by 1;
Sequence altered.
SQL> select s.nextval from dual;
NEXTVAL
----------
115029
SQL> select s.nextval from dual;
NEXTVAL
----------
115030
SQL>