zoukankan      html  css  js  c++  java
  • Oracle导入和导出工具使用

      Oracle 提供两个工具imp.exe 和exp.exe分别用于导入和导出数据。这两个工具位于Oracle_home/bin目录下。
      导出数据exp
      1 将数据库ATSTestDB完全导出,用户名system 密码123456 导出到c:\export.dmp中
      exp system/123456@ATSTestDB file=c:\export.dmp full=y
      其中ATSTestDB为数据库名称,system为该数据库里的账户,123456为其密码。
      2 将数据库中system用户与sys用户的所有相关资源导出(表,存储过程,方法,视图等等)
      exp system/123456@ATSTestDB file= c:\export.dmp owner=(system,sys)
      3 将数据库中的表sys.table1、owbsys.table2导出
      exp system/123456@ATSTestDB file= c:\export.dmp tables=( sys.table1, owbsys.table2)
      注意,需要加上表的schema名称,如果没有加的话默认是导当前connected用户的表,当然你连接上去的账户要对相应的表有权限。
      4 将数据库中的表table1中的字段Title以"GangGe"打头的数据导出
      exp system/123456@ATSTestDB file= c:\export.dmp tables=(table1) query=\" where Title like 'GangGe%'\"
      斜杠 "\" 后面跟冒号是为了转义字符冒号" " "用的,因为后面是一条条件查询语句。Query参数只能指定一个,如果Query要为多张表,所以同样,tables里面也只能有一张表,或者多张表,然后query里面的条件在这些表上面都可以运行。否则只好多写几条exp语句了。
      导出后,或许发现数据比较大,我们可以用一些压缩工具对数据进行二次压缩,例如用winzip, winrar, 7zip等第三方工具。同样,exp支持一个参数用户直接对数据进行压缩:comPRess = y, 这个参数直接加到命令的后面即可实现导出的同时压缩数据。
      导入数据imp
      我们知道怎么提取数据,那么还原的时候,就需要使用imp命令把导出的数据加载进去。
      1 向ATSTestDB里面加载c:\export.dmp数据
      imp system/123456@ATSTestDB file=c:\export.dmp
      好了,导数据得时候,有可能报错了。为什么?有两种主要的原因:
      A. 导入的对象(表,视图,方法等)原本不属于当前连接的用户的
      B. 导入的对象在该数据库的指定用户下已经存在
      C. 导入的对象的原本用户不再这个数据库里
      所有对象全部导入到指定的账户下:
      Imp system/123456@ATSTestDB file=c:\export.dmp fromuser=sys touser=system
      其中fromuser=sys为。dmp文件里的对象的原先的owner, touser=system 为作为导入的对象的新的Owner.
      忽略/插入数据
      Imp system/123456@ATSTestDB file=c:\export.dmp ignore=y
      其中ignore=y告诉imp.exe把数据直接插入到相应对象(并且如果导入的对象里面有其他的对象,如约束,索引等,会在数据插入后被创建)。
      2 加载其中的指定表table1,table2
      imp system/123456@ATSTestDB file=C:\export.dmp tables=(table1,table2)
      3 忽略加载约束
      有时候导数据进来的时候,我们不需要把它的约束,比如一些外键约束等都导进来,可以加上参数constraints=N
      imp system/123456@ATSTestDB file=C:\export.dmp tables=(table1,table2) constraints=N
      4 不加载索引(比如唯一性的索引)
      imp system/123456@ATSTestDB file=C:\export.dmp tables=(table1,table2) indexs=N
      5 只加载结构,不加载数据
      如果只要表的结构等定义(约束,触发器),那么不要里面的数据,可以加上参数rows=N
      imp system/123456@ATSTestDB file=C:\export.dmp tables=(table1,table2) rows=N
      对于上述操作登陆操作的对象system是管理员,如果不是管理员,而是普通用户,那么这个用户必须有创建删除对象的权利,对象可能包括 表,视图,方法,存储过程等等常见的对象。为什么"可能"包括?因为这个视导入导出的时候是否涉及相关类型的对象而定。
      至此,以上简单的Oracle导入导出数据的命令掌握了吗?相信够用了。

  • 相关阅读:
    4 Apr 18 软件开发目录 logging模块的使用 序列化(Json, Pickle) os模块
    3 Apr 18 内置函数 列表生成式与生成器表达式 模块的使用之import 模块的使用之from…import…
    2 Apr 18 三元表达式 函数递归 匿名函数 内置函数
    30 Mar 18 迭代器 生成器 面向过程的编程
    29 Mar 18 函数 有参、无参装饰器
    28 Mar 18 函数
    27 Mar 18 函数的参数
    26 Mar 18 函数介绍
    23 Mar 18 文件处理
    22 Mar 18 补充数据类型+字符编码+文件处理
  • 原文地址:https://www.cnblogs.com/wbzhao/p/2408483.html
Copyright © 2011-2022 走看看