误删(DROP)了一张表,表名:aaa
原数据库名:SWZW 
用户名:swzw
密码:web
现在想找回这个表包括表里的数据
在网上查了下,我这样做不知道对不对?还是新手,请教高手了!
我装了oracle9i的客户端,
在命令行输入imp  swzw/web@SWZW   file=c:\back.dmp    tables=aaa
不知道这样是不是就可以了?

解决方案 »

  1.   

    如果是10g的数据库的话, 可以使用其回收站的新功能, 从回收站中恢复删除的表. 例如: flashback table DINYA to before drop rename to dinya2把表dinya从回收站中恢复为表名: dinya2
      

  2.   

    我在CMD里执行了IMP语句,报如下信息:C:\>imp  swzw/weblogic@SWZW_31.16.1.17 file=c:\swzw.dmp  tables=sw_supervise_ite
    m  ignore=y log=d:/a.logImport: Release 9.2.0.1.0 - Production on 星期二 4月 29 10:15:45 2008Copyright (c) 1982, 2002, Oracle Corporation.  All rights reserved.
    连接到: Oracle9i Enterprise Edition Release 9.2.0.1.0 - Production
    With the Partitioning, OLAP and Oracle Data Mining options
    JServer Release 9.2.0.1.0 - Production经由直接路径导出由EXPORT:V09.02.00创建的导出文件
    已经完成ZHS16GBK字符集和AL16UTF16 NCHAR 字符集中的导入
    . 正在将SWZW的对象导入到 SWZW
    IMP-00051: 直接路径导出的转储文件有不合法的列长度
    IMP-00032: SQL 语句超过缓冲区长度
    IMP-00032: SQL 语句超过缓冲区长度
    IMP-00032: SQL 语句超过缓冲区长度是什么问题,我有这个表的DDL,创建了一个,然后ignore=y的意思是如果已经创建了表则覆盖数据,难道要把表删掉,再导入?
      

  3.   

    imp里的dmp文件是表没有删除前的数据文件吗
      

  4.   

    用PLSQL Developer 去导入、。。很快的
      

  5.   

    但是我只要一个表,PLSQL Developer 是不是导所有表?
      

  6.   

    对于这样的文体,可以尝试把缓冲区设置大一些,要么就是版本问题。
    指定buffer=xxxxx 看看。
      

  7.   

    解决了,原来是找错DMP文件了...
    在命令行输入
    C:\>imp  swzw/weblogic file=c:\swzw.dmp  tables=sw_supervise_item ignore=y
    就可以了
    ignore=y的意思是如果表存在,则只导入数据,并且导入的数据不会覆盖目前的数据.