------故障描述--------------------
报错信息:
ORA-39083: 对象类型 DEFAULT_ROLE 创建失败, 出现错误:
ORA-01919: 角色 'ROLE_EMSP' 不存在
失败的 sql 为:
ALTER USER "BFPUB_MALL" DEFAULT ROLE "CONNECT", "ROLE_EMSP"
------解决方案--------------------
既然导入的时候报错了,说明源数据库中是存在该对象的,那么首先要做的是,去源库中查询该角色的权限信息,然后在新的数据库中,在sys用户下,建一个角色 ROLE_EMSP,并赋给和源数据库中相同的数据库操作权限,然后再重新执行导入操作。
注:如果expdp按照schema方式导出的,在往新库导入的时候,是没有创建旧库里的角色,表空间等对象的,在导入时,需要预先创建这些对象。
------其他报错--------------------
ORA-31684 说明你要导入的用户已经存在,不会重新创建。
如果要避免提示此错误,可以删除掉hr用户及其对象,如:
SQL>drop user hr cascade;
impdp可以自动创建相应的用户,这点比imp好。