日期:2014-05-17  浏览次数:20708 次

oracle表备份的问题
我想从服务器上的另一用户中导出一张表,但是提示没有权限。
以下是日志:
连接到: Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options
已导出 ZHS16GBK 字符集和 AL16UTF16 NCHAR 字符集

即将导出指定的表通过常规路径...
EXP-00009: 没有导出 JWXT 的表 SYS_XY 的权限
导出成功终止, 但出现警告。

Export finished on 2012/12/9 12:33:20

这应该是要授予那个权限呢
------解决方案--------------------
EXP-00009,可能的原因:
1)buffer大小,存储容量要大于你备份的数据量
2)权限问题,有两种方法可以处理:

   直接授权:

   首先在执行导出其它用户表时,要具有export full database权限,
   而这个权限是在exp_full_database角色下的
   而你在使用exp执行导出时,用户默认角色集中一般没有export full database权限,所以
   导出时出现错误
   所以你可以把这个权限赋于它,并且修改默认角色集中包含export full tablespace权限:
   grant exp_full_database to uname;
   alter user uname default role resource,connect,exp_full_database....

   间接授权:

    在另一个用户下:
    create table table_name as select * from  JWXT.SYS_XY 
    然后expdp or exp
    
3)再不行,@?/rdbms/admin/catexp.sql重新跑一下这个脚本试试
------解决方案--------------------
CSV如果你用SQLLDR也很快啊,oracle自带的exp/imp,expdp/impdp,sqlldr一般比plsql工具快吧
------解决方案--------------------
首先以管理员的身份登入,然后执行
grant exp_full_database to 用户