废话不多说,直奔主题在网上搜索了一下数据导出的命令,exp、expdp这两个我试着用exp导出方案,一点问题都没有,而且生成的*.dmp文件很小当我用expdp命令导出的时候,却出现了很多的问题,我把的我操作步骤与大家共享1、sqlplus system/password 进入后创建逻辑目录:create directory dumpdir as 'f:\dump';
在这里需要注意,我是在windows平台上操作的,f:\dump必须是真实的物理磁盘目录,而dumpdir则是一个逻辑上的目录。另外创建目录的时候最好以system用户来创建
2、给要导出的用户赋目录的读写权限:grant read,write on directory dumpdir to scott;(这里要导出的是用户scott)
3、进入cmd下,输入命令(这里有两个版本)
 (1)expdp scott/tiger directory=dumpdir dumpfile=scott.dmp schemas=scott;网上的这个版本,命令执行时提示参数值无效,方案表达式'scott;'与任何方案不对应。所以这一个,无解
 (2)expdp scott/tiger directory=dumpdir dumpfile=scott.dmp schemas=system,scott;这是另外一个版本,命令执行了导出操作,但是导出的是system的,还提示一个错误:未找到方案scott。这不是我想要的结果。所以我对它进行了一些修改,如下:
  expdp scott/tiger directory=dumpdir dumpfile=scott.dmp schemas=scott,system;这样的执行结果是把scott的导出,但同样是报一个错误:未找到方案scott。由此,我发现,schemas参数后面的值,只导逗号前的方案,后面的方案提示未找到。这个同样是无解总结:expdp命令使用中schemas到底要怎么设置才能真正导出自已想要导出的方案,而且还不报错呢?

解决方案 »

  1.   

    在c盘下新建目录dump,然后alter system set utl_file_dir="c:/dump" scope=spfile 
    再expdp tds/wellhope@orcl  dumpfile=scott.dmp schemas=scott
      

  2.   

    再expdp scott/tiger@sid dumpfile=scott.dmp schemas=scott
      

  3.   

    directory好像是用的是utl_file_dir对应的目录。
      

  4.   

    参解释一下第一句命令的作用吗?我按照你的进行了操作,还是提示错误:方案表达式"scott;"与任何方案均不对应
      

  5.   

    确认scott存在?
    我刚才导出自己的数据没问题。另外查了下manual。
    CREATE OR REPLACE DIRECTORY dmtest AS 'c:\oracle\product\10.2.0\dmining';
    GRANT ALL ON DIRECTORY dmtest TO dmuser1;
    GRANT EXP_FULL_DATABASE TO dmuser1;
    GRANT IMP_FULL_DATABASE TO dmuser1;
    SQL> EXECUTE DBMS_DATA_MINING.EXPORT_MODEL('allmodels.dmp','DMTEST');
    PL/SQL procedure successfully completed.
    确认scott有EXP_FULL_DATABASE和IMP_FULL_DATABASE权限?
      

  6.   

    SELECT * FROM all_users t WHERE t.username='SCOTT';
      

  7.   

    方案表达式'scott;'与任何方案不对应
    这个提示得很清楚
    将;号去掉
    这操作系统命令而不是sql
      

  8.   

    首先谢谢minitoy的关注,scott是存在的,不过这里的scott好像只能是大写才可以在all_users中查到
      

  9.   


    果然@_@  晕呼呼!!不加分号就成功了,哇卡卡!!谢谢minitoy以及狂浪的关注撒!!问题解决了
      

  10.   

    呵呵,多谢,我第一次知道有expdb