暂无图片
暂无图片
1
暂无图片
暂无图片
暂无图片

drop user 导致列丢失

原创 范计杰 2021-06-07
592

数据迁移时,删除某个用户,使用DATAPUMP重导。导致其它用户下引用该用户下自定义类型的表列数据丢失。

问题重现示例

SQL> create user user1 identified by Zas_9999;

User created.

SQL> create user user2 identified by Zas_9999;

User created.


SQL> grant dba to user1;

Grant succeeded.

SQL> grant dba to user2;

Grant succeeded.

SQL> grant EXECUTE ANY TYPE  to user2;

Grant succeeded


SQL> create type user1.type1 as object(c int);
  2  /

Type created.


SQL> create table user2.tab1(id number,c1 user1.type1);

Table created.

insert into  user2.tab1(id,c1) values (1,user1.type1(1));

SQL> commit;

Commit complete.


----查询到1行数据,两列
SQL> select * from user2.tab1;

        ID
----------
C1(C)
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
         1
TYPE1(1)


---drop user cascade 无提示,但实际导致其它用户下的表,列数据丢失了
SQL> drop user user1 cascade;

User dropped.

----查询到1行数据,只有1列,C1 列没了!!!
SQL> SQL> select * from user2.tab1;

  ID
----
   1


复制
最后修改时间:2021-06-08 17:19:40
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论