oracle在cmd下通过命令导入导出数据
1、首先在cmd下切换到oracle的客户端的exp.exe所在的bin目录下,例如
D:\oracle\product\10.2.0\client_2\BIN
数据导出:导出的数据库名称是在tnsnames.ora文件中定义的
1 将数据库zxcc完全导出,用户名kf 密码zx 导出到D:\zxcc.dmp中
exp kf/zx@zxcc file=d:\zxcc.dmp full=y
full=y 表示全库导出。full总共有2个可选项yes(y)/no(n),缺省情况下full=no,这时只会将该用户下的对象导出。
2 将数据库zxcc中kf用户与cc用户的表导出
exp kf/zx@zxcc file=d:\zxcc_ur.dmp owner=(kf,cc)
full方式可以备份所有用户的数据库对象,包括表空间、用户信息等,owner=XX只能备份指定用户的对象,其他用户下的就不备份了,EXP中full=y和owner=XX是不能同时使用的。
3 将数据库zxcc中的表kf_operator、kf_role导出
exp kf/zx@zxcc file= d:\zxcc_tb.dmp tables=(kf_operator,kf_role)
tables=xx 表示备份相关表,不能同时和owner、full使用。
4 将数据库中的表kf_operator中的字段oper_id以"00"打头的数据导出
exp kf/zx@zxcc file=d:\zxcc_t.dmp tables=(kf_operator) query=\" where oper_id like '00%'\"
query主要是导出合适条件的数据。使用该参数时,需要注意对所有操作系统保留字符都要使用转义符号。若有括号()也需要转义:
query=\"where dt=to_date\'2007−09−22\',\'yyyy−mm−dd\'\" 。
如果遇到条件比较繁琐的语句,频繁的转义操作不仅费时,还很容易出错。我们可以使用exp或expdp的PARFILE参数避免query内容的繁琐转义问题。
例:
oracle DBALNP01 > cat > zxcc.par
tables=kf_operator
file=zxcc.dmp
query="where dt_time=to_date('2010-06-25','yyyy-mm-dd')"
这时就可以尽情的再双引号中写条件语句了。
上面是常用的导出,对于比较大的数据库,我们可以对导出文件进行压缩处理,可用winzip把dmp文件进行压缩。
也可以在上面命令后面加上 compress=y 来实现。
5、//带日志的导出
exp qmcb/qmcb@10.92.131.233:1521/qmcb file=f:/dmp/20171215.dmp log=qmcb20171225.log full=y;
数据的导入:
1、将D:\zxcc.dmp 中的数据导入 zxcc数据库中。
imp kf/zx@zxcc file=D:\zxcc.dmp
导数据得时候,有可能报错。为什么?有以下主要的原因:
A. 导入的对象(表,视图,方法等)原本不属于当前连接的用户的
B. 导入的对象在该数据库的指定用户下已经存在
C. 导入的对象的原本用户不在这个数据库里
对于这三个问题的处理方法如下:
a/c、所有对象全部导入到指定的账户下:
imp kf_new/zx@zxcc_new file=d:\zxcc.dmp fromuser=kf touser=kf_new
其中fromuser=kf为.dmp文件里的对象的原先的owner, touser=kf_new 为作为导入的对象的新的Owner.
b、忽略/插入数据:
imp kf_new/zx@zxcc_new file= d:\zxcc.dmp ignore=y
其中ignore=y告诉imp.exe把数据直接插入到相应对象(并且如果导入的对象里面有其他的对象,如约束,索引等,会在数据插入后被创建)。
2、将d:\zxcc_tb.dmp中的表tb_operator 导入
imp kf/zx@zxcc file=d:\zxcc_tb.dmp tables=(tb_operator)
忽略加载约束
有时候导数据进来的时候,我们不需要把它的约束,比如一些外键约束等都导进来,可以加上参数constraints=N
不加载索引(比如唯一性的索引),可以加上参数indexs=N
只加载结构,不加载数据,如果只要表的结构等定义(约束,触发器),而不要里面的数据,可以加上参数rows=N
对于上述操作登陆操作的用户需是管理员,如果不是管理员,而是普通用户,那么这个用户必须有创建删除对象的权利,对象可能包括表,视图,方法,存储过程等等常见的对象。为什么“可能”包括?因为这个视导入导出的时候是否涉及相关类型的对象而定。
Imp kf/zx@zxcc_new file=d:\zxcc.dmp fromuser=kf touser=kf_new ignore=y
基本上面的导入导出够用了。不少情况要先是将表彻底删除,然后导入。
注意:
(1)、操作者要有足够的权限,权限不够会有提示。
(2)、数据库链接正常,可以用tnsping zxcc 来检测数据库zxcc能否连上。
(3)、导入/导出数据库时注意字符集。可能会出现导出/导入时数据库字符集不一致而报错。
oracle数据库其他常用命令:
1、给用户增加导入数据权限的操作
第一,启动sql*puls
第二,以管理员(DBA)用户登陆
第三,create user 用户名 IDENTIFIED BY 密码 (如果已经创建过用户,这步可以省略)
第四,>grant create user , drop user , alter user , create any view , drop any view , exp_full_database , imp_full_database , dba , resource , create session to 用户名字;
第五, 运行cmd进入dmp文件所在的目录,
imp userid=管理员用户名/密码 full=y file= filename.dmp
或者 imp userid=管理员用户名/密码 full=y file=filename.dmp
2、Oracle 不允许直接改变表的拥有者, 利用Export/Import可以达到这一目的.
先建立.par文件()
然后,使用时命令如下:imp parfile=/filepath/import9.par
例 import9.par 内容如下:
FROMUSER=user
TOUSER=user_new (注:把表的拥有者由FROMUSER改为TOUSER,FROMUSER和TOUSER的用户可以不同)
ROWS=Y
INDEXES=Y
GRANTS=Y
CONSTRAINTS=Y
BUFFER=409600
file==/filepath/xxxx.dmp
log==/filepath/import_log.log
oracle在cmd下通过命令导入导出数据的更多相关文章
- Linux下mysql命令 导入 导出sql文件
导出数据库 直接使用命令: mysqldump -u root -p abc >abc.sql 然后回车输入密码就可以了: mysqldump -u 数据库链接用户名 -p 目标数据库 > ...
- Linux下MySQL 命令导入导出sql文件
导出数据库 直接使用命令: mysqldump -u root -p database >database.sql 然后回车输入密码就可以了: mysqldump -u 数据库链接用户名 -p ...
- Postgres copy命令导入导出数据
最近有需要对数据进行迁移的需求,由于postgres性能的关系,单表3000W的数据量查询起来有一些慢,需要对大表进行切割,拆成若干个子表,涉及到原有数据要迁移到子表的需求.起初的想法是使用存储过程, ...
- Oracle使用数据泵导入/导出数据(expdp/impdp)
Oracle使用数据泵导入/导出数据(expdp/impdp) A电脑上的操作(expdp数据导出) 运行cmd: 登录数据库,输入命令:sqlplus 使用管理员角色登录需要在用户名后加" ...
- exp/expdp 与 imp/impdp命令导入导出数据库详解
一.exp命令导出数据库 如何使exp的帮助以不同的字符集显示:set nls_lang=simplified chinese_china.zhs16gbk,通过设置环境变量,可以让exp的帮助以中文 ...
- sqlserver中BCP命令导入导出
个人自用导出文本文件命令: bcp [xxDB].[dbo].[xx_tb_name] out d:\temp\xxx.txt -c -t "\t" -T bcp是SQL Serv ...
- oracle中导入导出数据备份数据库
原文:oracle中导入导出数据备份数据库 数据库所在位置 将数据导出到的文件名 用户名 备份数据库 :exp c ...
- PLSQL导入/导出数据方法
PLSQL导入/导出数据方法 PLSQL导入/导出数据方法 以前导数据库信息的时候,总是会先开启sql窗口,把自己手写的建表文件复制进去,然后再导入数据信息. 今天突然懒得去找以前的建表文件,而想用S ...
- [转]mysql导入导出数据中文乱码解决方法小结
本文章总结了mysql导入导出数据中文乱码解决方法,出现中文乱码一般情况是导入导入时编码的设置问题,我们只要把编码调整一致即可解决此方法,下面是搜索到的一些方法总结,方便需要的朋友. linux系统中 ...
随机推荐
- VS2008 AddIn 操作DTE2
在VS2008扩展开发中,最重要的就是DTE对象.DTE对象提供了对扩展性模型中其他对象的访问.DTE是VS自动化模型中的顶级对象. 在按照http://www.cnblogs.com/yjf512/ ...
- java基础---->final关键字的使用
这里介绍一些java基础关于final的使用,文字说明部分摘自java语言规范.心甘情愿这四个字,透着一股卑微,但也有藏不住的勇敢. Final关键字的说明 一.关于final变量规范说明 .A fi ...
- 【BZOJ3872】[Poi2014]Ant colony 树形DP+二分
[BZOJ3872][Poi2014]Ant colony Description 给定一棵有n个节点的树.在每个叶子节点,有g群蚂蚁要从外面进来,其中第i群有m[i]只蚂蚁.这些蚂蚁会相继进入树中, ...
- json学习之JSONArray的应用(转载)
从json数组中得到相应java数组,如果要获取java数组中的元素,只需要遍历该数组. 1 /** 2 * 从json数组中得到相应java数组 3 * JSONArray下的toArray()方法 ...
- Sass (Syntactically Awesome StyleSheets)
官网:https://www.sass.hk/docs/ Sass 是一款强化 CSS 的辅助工具,它在 CSS 语法的基础上增加了变量 (variables).嵌套 (nested rules).混 ...
- POSTFIX服务简介
传统的Sendmail将所有功能都集中在同一个程序里,这种结构我们称之为“单体式设计”(monolithic).Postfix采用专职负责的策略,不同的功能分别交由不同的专门程序处理,这种结构称为“模 ...
- 【Python Programe】WSGI (Web Server Gateway Interface)
Part1: What is a Web server? 一个位于物理服务器上的网络服务器(服务器里的服务器),等待客户端去发送request,当服务器接收到request,就会生成一个respons ...
- NavagationBar 设置颜色和状态栏设置白色
ios7以下的版本设置导航栏背景颜色可以使用 [[UINavigationBar appearance] setTintColor:[UIColor orangeColor]]; ios7以后: [[ ...
- 反编译apk + eclipse中调试smali
1.对apk使用apktool反编译出可调试的smali代码到out文件夹 apktool -d d 定点加粉丝_com.mingniu.wxddjfs_440.apk -o out 这里必须使用-d ...
- MapReduce分区和排序
一.排序 排序: 需求:根据用户每月使用的流量按照使用的流量多少排序 接口-->WritableCompareable 排序操作在hadoop中属于默认的行为.默认按照字典殊勋排序. 排序的分类 ...