方法一:利用PL/SQL Dloper工具导出:
oracledmp导入(oracle中导入dmp)
菜单栏---->Tools---->Export Tables
方法二:利用cmd的作命令导出,详情如下:
1:G:\Oracle\product\10.1.0\_1\NETWORK\目录下有个tnsname.ora文件,内容如下:
CMSTAR =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS =
(PROTOCOL = TCP)(HOST = 172.18.13.200)(PORT = 1521))
(SERVICE_NAME = cmstar)
))其中:CMSTAR为数据库名,HOST为IP地址,所以可以仿效上面的例子手动添加数据录连接。
2:用cmd进入命令行
就是测试172.18.13.200是否连接成功
3:导入与导出,如下:
数据导出:
1 将数据库TEST完全导出,用户名 密码mar
导出到D:\daochu.dmp中
exp /mar@TEST file=d:\daochu.dmp
full=y
2将数据库中用户与sys用户的表导出
exp/mar@TESTfile=d:\daochu.dmpowner=(,sys)
3将数据库中的表table1、table2导出
exp/mar@TESTfile=d:\daochu.dmptables=(table1,table2)
4将数据库中的表table1中的字段filed1以"00"打头的数据导出
不过在上面命令后面加上compress=y就可以了
数据的导入
1将D:\daochu.dmp中的数据导入TEST数据库中。
imp/mar@TESTfile=d:\daochu.dmp
2将d:\daochu.dmp中的表table1导入
imp/mar@TESTfile=d:\daochu.dmptables=(table1)
注意事项:导出dmp数据时需要有导出表的权限的用户,否则不能导出。
PL/SQL Dloper是Oracle数据库中用于导入或导出数据库的主要工具,本文主要介绍了利用PL/SQL
Dloper导入和导出数据库的过程,并对导入或导出时的一些注意事项进行了说明,接下来我们就一一介绍。
1 tools ->export user object 1 将D:\daochu.dmp 中的数据导入 TEST数据库中。选择选项,导出.sql文件。
2 tools ->export tables-> Oracle Export 选择选项导出.dmp文件。
导入步骤:
1 tools->import tables->SQL Inserts
导入.sql文件。
2 tools->import talbes->Oracle Import然后再导入dmp文件。
一些说明:
Tools->Export User Objects导出的是建表语句(包括存储结构)。
Tools->Export
Tables里面包含三种导出方式,三种方式都能导出表结构以及数据,如下:
Oracle Export
Sql Insert
种是导出为.dmp的文件格式,.dmp文件是二进制的,可以跨平台,还能包含权限,效率也很不错,用得广
。第二种是导出为.sql文件的,可用文本编辑器查看,通用性比较好,但效率不如种,适合小数据量导入导出。尤其注意的是表中不能有大字段(blob,clob,long),如果有,会提示不能导出(提示如下:
table contains one or more LONG columns cannot export in sql format,user Pl/sql
dloper format instead)。
第三种是导出为.pde格式的,.pde为Pl/sql
dloper自有的文件格式,只能用Pl/sql dloper自己导入导出,不能用编辑器查看。
对于本机安装了oracle 客户端,下述命令都可以在 dos 执行,当然 dmp 文件导出在本地。
但在实际研发时,没人愿意在本机上安装庞大的 oracle 软件,这时你需要使用 Xshell/puTTY..
远程工具连接到 Linux 进行作例如:imp命令导入数据:,进行 Linux 上 dmp 文件的导入导出。
exp /password@SID file=d:/daochu.dmp full=y
b. 将用户 与 sys 用户的表导出到指定路径 D 盘
c. 将用户 中的表 table_A、table_B 导出到指定路径 D 盘
exp /password@SID file= d:/daochu.dmp tables=(table_A,table_B)
d. 将用户 中的表 table1 中的字段 filed1 以"00"打头的数据导出
exp /passwor@SID filed=d:/daochu.dmp tables=(table1) query=/" where filed1 like '00%'/"
对于压缩可以用 winzip 将 dmp 文件进行压缩,也可以在上面命令后面 加上 compress=y 来实现。
导出 DMpl/sqlP文件适用于大型数据库完整迁移,对迁移前后两者数据库字符集要求一致,且对CLOB字段支持不太友好。
对于小数据的导出其实用 PLSQL 能做的更好,更快,导出的SQL也很直观。
e. 将 D:/daochu.dmp 中的数据导入 TEST 数据库中。
imp /password@SID file=d:/daochu.dmp
上面命令如果出现问题,假设有的表已存在,对该表可以不进行导入,后面添加 ignore=y。
f. 将 d:/daochu.dmp中的表table1 导入
imp /passord@SID file=d:/daochu.dmp tables=(table1)
Oracle数据导入导出imp/exp就相当于oracle数据还原与备份。exp命令可以把数据从远程数据库导出到本地的dmp文件,imp命
imp /mar@TEST file=d:\daochu.dmp执行环境:可以在SQLPLUS.EXE或者DOS(命令行)中执行,
该目录下有EXP.EXE与IMP.EXE文件被用来执行导入导出。
oracle用ja编写,SQLPLUS.EXE、EXP.EXE、IMP.EXE这两个文件有可能是被包装后的类文件。
SQLPLUS.EXE调用EXP.EXE、IMP.EXE所包裹的类,完成导入导出功能。
数据导出:
1 将数据库TEST完全导出,用户名 密码mar 导出到D:\daochu.dmp中
exp /mar@TEST file=d:\daochu.dmp full=y
exp /mar@TEST file=d:\daochu.dmp owner=(,sys)
exp aichannel/aichannel@TESTDB2 file= d:\data\newgnt.dmp tables=(inner_notify,notify_staff_relat)
4 将数据库中的表table1中的字段filed1以"00"打头的数据导出
exp /mar@TEST file=d:\daochu.dmp tables=(table1) query=\" where filed1 like '00%'\"
上面是常用的导出,对于压缩,既用winzip把dmp文件可以很好的压缩。
数据的导入
imp 已经完成ZHS16GBK字符集和ZHS16GBK NCHAR 字符集中的导入/mar@TEST file=d:\daochu.dmp
上面可能有点问题,因为有的表已经存在,然后它就报错,对该表就不进行导入。
基本上上面的导入导出够用了。不少情况要先是将表删除,然后导入。
注意:
作者要有足够的权限,权限不够它会提示。
数据库时可以连上的。可以用tnsping TEST 来获得数据库TEST能否连上。
附录一:
,启动sqlpuls
第二,以/mar登陆
第三,create user 用户名 IDENTIFIED BY 密码 (如果已经创建过用户,这步可以省略)
第四,GRANT CREATE USER,DROP USER,ALTER USER ,CREATE ANY VIEW ,
DROP ANY VIEW,EXP_FULL_DATABASE,IMP_FULL_DATABASE,
第五, 运行-cmd-进入dmp文件所在的目录,
imp userid=/mar full=y file=.dmp
或者 imp userid=/mar full=y file=filename.dmp
执行示例:
F:\Work\Oracle_Data\backup>imp userid=test/test full=y file=inner_notify.dmp
屏幕显示
Import: Release 8.1.7.0.0 - Production on 星期四 2月 16 16:50:05 2006
(c) Copyright 2000 Oracle Corporation. All rights reserved.
With the Partitioning option
J Release 8.1.7.0.0 - Production
经由常规路径导出由EXPORT:V08.01.07创建的文件
导出使用UTF8 NCHAR 字符集 (可能的ncharset转换)
. 正在将AICHANNEL的对象导入到 AICHANNEL
. . 正在导入表 "INNER_NOTIFY" 4行被导入
准备启用约束条件...
成功终止导入,但出现警告。
附录二:
Oracle 不允许直接改变表的拥有者, 利用Export/Import可以达到这一目的.
先建立import9.par,
然后,使用时命令如下:imp parfile=/filepath/import9.par
例 import9.par 内容如下:
FROMUSER=TGPMS
TOUSER=TGPMS2 (注:把表的拥有者由FROMUSER改为TOUSER,FROMUSER和TOUSER的用户可以不同)
ROWS=Y
INDEXES=Y
GRANTS=Y
CONSTRAINTS=Y
BUFFER=409600
file==/backup/ctgpc_20030623.dmp
log==/backup/import_20030623.log
Oracle中导入dmp文件导出步骤:的步骤如下:
基本上上面的导入导出够用了。不少情况要先是将表删除,然后导入。
注意:作者要有足够的权限,权限不够它会提示。数据库时可以连上的。可以用tnsping TEST 来获得数据库TEST能否连上。
首先导入DMP数据表
dlopea. 将用户 用户表导出到指定路径 D 盘r需要用到一些工具:例如toad:database export browser 。
一、在安装目录里,比如:
(5) imp和exp使用的字符集不同1、导入imp:F:\app\Administrator\product\11.1.0\db_1\BIN\imp.exe;
2、导出exp:F:\app\Administrator\product\11.1.0\db_1\BIN\exp.exe;
3、sql插入:F:\app\Administrator\product\11.1.0\db_1\BIN\sqlplus.exe;
二、需要注意的是2 将d:\daochu.dmp中的表table1 导入::
plsql的导出功能要调用Oracle客户端中的exp.exe文件,需要安装完整的Oracle客户端。
扩展资料
1、使用PLSQL导入导出,都是在工具下面,导入导出,需要注意的是用到oracle的可执行文件
E:\app\Administrator\product\11.1.0\db_1\BIN\exp.exe;
2、如果导出的时候出现了闪动一下,但是没有导出来的情况,是因为没有配置环境变量
配置环境变量ORACLE_HOME=D:\app\product\11.2.0\dbhome_1;
3、导出的时候如果出现exp-00011的错误,原因是该表中没有数据;
4、导入dmp文件的时候报错,其中一个可能的原因是权限,如果导出的时候是dba权限,现在用的另外一个账户登录,权限不够也会出现报错,此时需要给当前用户赋予dba权限。
与你Oralce客户端安装位置有关,我的是:
d:\oracle\product\10.2.0\db_1\bin\imp.exe
导入imp:
F:\app\Administrator\product\11.1.0\db_1\BIN\imp.exe
导出exp:
F:\app\Administrator\product\11.1.0\db_1\BIN\exp.exe
sql插入:
F:\app\Administrator\product\11.1.0\db_1\BIN\sqlplus.exe
Oracle中导入dmp文件的步骤如下:
3 将数据库中的表inner_notify、notify_staff_relat导出imp aichannel/aichannel@HUST full=y file=file= d:\data
2 将d:\daochu.dmp中的表table1 导入:imp /mar@TEST file=d:\daochu.dmp tables=(table1) 基本上上面的导入导出够用了。不少情况要先是将表删除,然后导入。注意:作者要有足够的权限,权限不够它会提示。数据库时可以连上的。可以用tnsping TEST 来获得数据库TEST能否连上。
imp /用户的密码@SID号 fromuser=导出数据文件的用户名 tou$ imp /mar parfile=params.datser=需要导入的数据库用户 file=文件完整路径(此处支持拖放) log=导入日志文件路径
这个是在命令提示符下面的导入命令
或者使用PL/SQL dloper工具imp /mar@TEST file=d:\daochu.dmp tables=(table1)中的导入表(import table),选择oracle导入(oracle import),在下面哪里选择数据库文件点导入即可。
使用imp或impdp
--如何在oracle中导入dmp数据库文件?
(1) 数据库对象已经存在Oracle数据导入导出imp/exp就相当于oracle数据还原与备份。exp命令可以把数据从远程数据库导出到本地的dmp文件,imp命 令可以把dmp文件从本地导入到远处的数据库中。 利用这个功能可以构建两个相同的数据库,一个用来测试,一个用来正式使用。
执行环境:可以在SQLPLUS.EXE或者DOS(命令行)中执行, DOS中可以执行时由于 在oracle 8i 中 安装目录\ora81\BIN被设置为全局路径, 该目录下有EXP.EXE与IMP.EXE文件被用来执行导入导出。
oracle用ja编写,SQLPLUS.EXE、EXP.EXE、IMP.EXE这两个文件有可能是被包装后的类文件。
SQLPLUS.EXE调用EXP.EXE、IMP.EXE所包裹的类,完成导入导出功能。
数据导出:
1 将数据库TEST完全导出,用户名 密码mar 导出到D:\daochu.dmp中
exp /mar@TEST file=d:\daochu.dmp full=y
exp /mar@TEST file=d:\daochu.dmp owner=(,sys)
exp aichannel/aichannel@TESTDB2 file= d:\data\newgnt.dmp tables=(inner_notify,notify_staff_relat)
4 将数据库中的表table1中的字段filed1以"00"打头的数据导出
exp /mar@TEST file=d:\daochu.dmp tables=(table1) query=\" where filed1 like '00%'\"
上面是常用的导出,对于压缩,既用winzip把dmp文件可以很好的压缩。
也可以在上面命令后面 加上 compress=y 来实现。
数据的导入
imp aichannel/aichannel@HUST full=y file=file= d:\data\newgnt.dmp ignore=y
在后面加上 ignore=y 就可以了。
补充:ignore=y 会告诉数据库不用创建已有的表。
如果已有的表中有数据,要导入的表中的数据和已有的表中的数据有重复的话,会发生主键冲突。
基本上上面的导入导出够用了。不少情况要先是将表删除,然后导入。
注意:
作者要有足够的权限,权限不够它会提示。
数据库时可以连上的。可以用tnsping TEST 来获得数据库TEST能否连上。
一. 导出工具 exp
1. 它是作系统下一个可执行的文件 存放目录/ORACLE_HOME/bin
exp导出工具将数据库中数据备份压缩成一个二进制系统文件.可以在不同OS间迁移
它有三种模式:
b. 表模式: 导出用户所有表或者指定的表;
c. 整个数据库: 导出数据库中所有对象。
2. 导出工具exp交互式命令行方式的使用的例子
$exp test/test123@appdb
Enter array fetch buffer size: 4096 > 回车
Export file: expdat.dmp > m.dmp 生成导出的文件名
(1)E(ntire database), (2)U(sers), or (3)T(ables): (2)U > 3
Export table data (yes/no): yes > 回车
Compress extents (yes/no): yes > 回车
Table(T) or Partition(T:P) to be exported: (RETURN to quit) > cmamenu 要导出的表名
. . exporting table CMAMENU 4336 rows exported
Table(T) or Partition(T:P) to be exported: (RETURN to quit) >要导出的表名n
Table(T) or Partition(T:P) to be exported: (RETURN to quit) > 回车
Export terminated successfully without warnings.
3. 导出工具exp非交互式命令行方式的例子
$exp scott/tiger tables=(emp,dept) file=/directory/scott.dmp grants=y
说明:把scott用户里两个表emp,dept导出到文件/directory/scott.dmp
说明:在exp里面加上导出emp的查询条件job='salean' and sal<1600
(但我个人很少这样用,还是把满足条件的记录生成临时表后,再exp会方便一些)
$exp parfile=username.par file=/directory1/username_1.dmp,/directory1/username_2.dmp filesize=2000M log=/directory2/username_exp.log
参数文件username.par内容
userid=username/userpassword
buffer=8192000
compress=n
grants=y
说明:username.par为导出工具exp用的参数文件,里面具体参数可以根据需要去修改
filesize指定生成的二进制备份文件的字节数
(可用来解决某些OS下2G物理文件的限制及加快压缩速度和方便刻历史数据光盘等)
二.导入工具 imp
1. 它是作系统下一个可执行的文件 存放目录/ORACLE_HOME/bin
imp导入工具将EXP形成的二进制系统文件导入到数据库中.
它有三种模式:
b. 表模式: 导出用户所有表或者指定的表;
c. 整个数据库: 导出数据库中所有对象。
只有拥有IMP_FULL_DATABASE和DBA权限的用户才能做整个数据库导入
imp步骤:
2.导入工具imp交互式命令行方式的例子
$ imp
Import: Release 8.1.6.0.0 - Production on 星期五 12月 7 17:01:08 2001
(c) Copyright 1999 Oracle Corporation. All rights reserved.
用户名: test
口令:
With the Partitioning option
J Release 8.1.6.0.0 - Production
导入文件: expdat.dmp> /tmp/m.dmp
输入插入缓冲区大小(小为 8192 ) 30720>
经由常规路径导出由EXPORT:V08.01.06创建的文件
警告: 此对象由 TEST 导出, 而不是当前用户
只列出导入文件的内容(yes/na. 用户模式: 导出用户所有对象以及对象中的数据;o):no>
由于对象已存在, 忽略创建错误(yes/no):no> yes
导入权限(yes/no):yes>
导入表数据(yes/no):yes>
导入整个导出文件(yes/no):no> yes
. 正在将TEST的对象导入到 SCOTT
. . 正在导入表 "CMAMENU" 4336行被导入
成功终止导入,但出现警告。
3.导入工具imp非交互式命令行方式的例子
$ imp /mar fromuser=jones tables=(accts)
$ imp /mar fromuser=scott tables=(emp,dept)
$ imp scott/tiger file = /mnt1/t1.dmp show=n buffer=2048000 ignore=n commit=y grants=y full=y log=/oracle_backup/log/imp_scott.log
file=dba.dmp show=n ignore=n grants=y fromuser=scott tables=(dept,emp)
4.导入工具imp可能出现的问题
一般情况, 导入数据前应该删除目标数据下的表, 序列, 函数/过程,触发器等;
数据库对象已经存在, 按缺省的imp参数, 则会导入失败
如果用了参数ignore=y, 会把exp文件内的数据内容导入
如果表有关键字的约束条件, 不合条件将不被导入
如果表没有关键字的约束条件, 将引起记录重复
(2) 数据库对象有主外键约束
不符合主外键约束时, 数据会导入失败
disable目标导入对象的主外键约束, 导入数据后, 再enable它们
(3) 权限不够
如果要把A用户的数据导入B用户下, A用户需要有imp_full_database权限
(4) 导入大表( 大于80M ) 时, 存储分配失败
导入时, 如果不存在连续一个大数据块, 则会导入失败.
导出80M以上的大表时, 记得compress= N, 则不会引起这种错误.
如果字符集不同, 导入会失败, 可以改变unix环境变量或者NT注册表里NLS_LANG相关信息.
导入完成后再改回来.
(6) imp和exp版本不能往上兼容
imp可以成功导入低版本exp生成的文件, 不能导入高版本exp生成的文件
根据情况我们可以用
$ imp username/password@connect_string
说明: connect_string 是在/ORACLE_HOME/network/admin/tnsnames.ora
定义的本地或者远端数据库的名称
注意事项:
UNIX: /etc/hosts 要定义本地或者远端数据库的主机名
win98: windows\hosts 和IP地址的对应关系
win2000: winnt\32\drivers\etc\hosts