欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

oracle数据库exp导出和imp导入实例演示

程序员文章站 2022-04-20 23:50:30
...

背景

需要把测试环境82库的一个有30条数据导入开发环境200库中,plsql图形界面有文本导入,最开始采用导csv的形式,
导出效率也很快,但是导入时会出现乱码,也设置了本地编码的环境变量NLS_LAGUAGE与数据库保持一致
,但导入始终是乱码。所以通过下面两种方法解决

方法一、采用oracle最原始dump文件的导出再导入的形式

本方法由于导出的是二进制文件,就不会存在编码问题。效率也很高

1、数据导出

1.1、创建导出参数文件

参数文件 expFile.txt 内容如下
路径:C:\Users\wanghao\Desktop

tables=ggcode_test //需要导出的表
rows=y //导出表数据
file=D:\software\oracle11\exp\ggcode_test.dmp  //导出文件路径以及文件名
log=D:\software\oracle11\exp\exp.log	//导出日志

1.2 执行导出

打开cmd 直接输入

exp aaa@qq.com/ctcore parfile=C:\Users\wanghao\Desktop\expFile.txt

oracle数据库exp导出和imp导入实例演示
导出时间花了40多秒效率也非常的高

2、数据导入

导入dump文件前,需要坚持导入的数据库中是否有该表,如果有的话需要drop掉,不然导入时会报错

2.1 创建导入参数文件

导入参数文件impFile.txt
路径C:\Users\wanghao\Desktop

file=D:\software\oracle11\exp\ggcode_test.dmp //导入文件路径以及文件名
tables=ggcode_test   //导入的表
rows=y	//导入数据
fromuser=ctcheck	//数据来自用户
touser=ctuat //导入用户

2.2 执行导入

同样在cmd命令行直接输入即可

   imp ctuat/aaa@qq.com/ctcore parfile=C:\Users\wanghao\Desktop\impFile.txt

oracle数据库exp导出和imp导入实例演示
导入差不多50s左右 效率极高
查看结果,成功导入了30w条数数据
oracle数据库exp导出和imp导入实例演示

方法二、通过创建DBLINK方式

在需要导入的数据库创建dblink,然后通过dblink访问需要获取的表数据插入到目标表中
注意为了安全起见。最后在源数据库重新创建一个用户,该用户只有查询权限,然后用该用户创建
dblink,这样就不会出现通过dbliink修改源库的数据了

创建的blink方法在 :https://blog.csdn.net/whandgdh/article/details/79286848
这里就不需要再赘述。

总结

exp和imp命令导出导入dump文件的形势。通过二进制文件方式导出和导入,不会存在乱码,除非导入导出数据库的编码不一致,同时效率也非常高。但是可能会存在如果用户没有导出 exp_full_database ,导入:imp_full_database权限
需要dba授权。
对于dblink方式也非常的简单,就不存在导出这个步骤,直接通过dblink访问源表,直接插入到目标表。同样这里可能也需要dba创建dba