今天想导出数据库的表和数据。假定数据库SID shili, 用户名name ,密码password.
用了三种方法:
1:exp name/password@shili file=c:\a.dmp2:进入pl/sql Tools--Export Tables 默认什么都不选,选择导出dmp格式。3:用$exp进入 然后一顿回车
这三种方法都能导出数据库,但是导出的数据库都只有4kb。 BAIDU了半天没找到答案,在这请教一下。谢谢啦

解决方案 »

  1.   

    4,加个问题,如果一个excel表的字段跟我数据库表的字段一模一样。
    我怎么能把这个EXCEL表的数据导入到我这个数据库表中?
      

  2.   

    1.试试
    exp name/password@shili file=c:\a.dmp owner=name
    或者
    exp name/password@shili file=c:\a.dmp tables=表名4.一般是用toad一类的工具导入
      

  3.   


    用你的方法试过了 结果多了2KB 是6KB.
    我觉得不是语句的问题,应该是oracle的问题。
    因为我用了三种方法。
    而且这三种方法在别的机器导同样的数据库都能导出4M的dmp文件。。
      

  4.   

    请问表空间如何设置。
    不懂,oracle我也只是知道简单的sql语句之类的东西。
      

  5.   

    要导出的用户:<按return退出>这一步中  后面加你要导出的用户
    比如system
    这样的话system下的所有对象将全部被导出(包括表)
    你要导出单个的表在上面选择T
    后输入你要导出的表
    4,加个问题,如果一个excel表的字段跟我数据库表的字段一模一样。 
    我怎么能把这个EXCEL表的数据导入到我这个数据库表中?这个方法也很多  
    常用的
    1、你可以用sqlserver里的dts
    2、通过sqlldr导入
      

  6.   

    可能是用户权限问题。
    换一个有 DBA 权限的用户(如 system 用户),普通用户只能导出属于自己的数据库对象。
      

  7.   

    倒两次user object和table
      

  8.   

    回答问题4,在pl/sql中的sql窗口查询要导入的表使用 for update关键字
    例如:
    select * from tablea where 1=2 for update;
    加where 1=2的条件是为了避免查出数据,也可以不加,通常我喜欢这么干不会冲突。在解决上方点开锁图标,然后全选excel里的记录并复制
    粘贴到数据表结果点击表头上的对号图标,在点击pl/sql工具栏中的提交图标(绿色的向下箭头),就搞定了注意如果违反约束,比如主键重复等,pl/sql会提示,修改数据内容即可
      

  9.   


    full=y 我也试了 没什么用,三种方法导出的结果都一样,就证明不应该是语句的问题。
      

  10.   

    不好意思  LS各位大哥。
    我忘记描述一点,我是用net manager连接服务器的数据库,
    我做客户端。
    然后用以上三种方法导服务器的数据库表。结果导出的结果都是4KB.
      

  11.   

    exp name/password@本地服务名 owner=owner rows=y file=c:\a.dmp log=c:\a.log 
      

  12.   

    你要指定要导出的内容(哪些表)才行啊,比如用PL/SQL developer时,你要在table列表里选中那些你想导出的表就OK了。
      

  13.   


    不太懂,数据库实名不就是sid名么?
      

  14.   

    本地服务名就是在tnsnames.ora文件里面指定的那个头哪,对本机来说,它是任意指定的,既不同于SID,也不同于全局服务名。exp name/password@shili owner=name file=c:\a.dmp本地服务名就是shili(注意上面导出的属于name拥有的对象)。