Ⅰ oracle 怎样用imp.exe导入导出数据
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, 这个参数直接加到命令的后面即可实现导出的同时压缩数据。
1 将数据库TEST完全导出,用户名system 密码manager 导出到D:/chu.dmp中
exp system/manager@TEST file=d:/chu.dmp full=y
2 将数据库中system用户与sys用户的表导出
exp system/manager@TEST file=d:/chu.dmp owner=(system,sys)
3 将数据库中的表inner_notify、notify_staff_relat导出
exp aichannel/aichannel@TESTDB2 file= d:/datanewsmgnt.dmp tables=(inner_notify,notify_staff_relat)
4 将数据库中的表table1中的字段filed1以"00"打头的数据导出
exp system/manager@TEST file=d:/chu.dmp tables=(table1) query=" where filed1 like '00%'"
上面是常用的导出,对于压缩,既用winzip把dmp文件可以很好的压缩。
也可以在上面命令后面 加上 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是管理员,如果不是管理员,而是普通用户,那么这个用户必须有创建删除对象的权利,对象可能包括 表,视图,方法,存储过程等等常见的对象。为什么“可能”包括?这个要看导入导出的时候是否涉及相关类型的对象而定。
1 将D:/chu.dmp 中的数据导入 TEST数据库中。
imp system/manager@TEST file=d:/chu.dmp
imp aichannel/aichannel@TEST full=y file=d:/datanewsmgnt.dmp ignore=y
上面可能有点问题,因为有的表已经存在,然后它就报错,对该表就不进行导入。
在后面加上 ignore=y 就可以了。
2 将d:chu.dmp中的表table1 导入
imp system/manager@TEST file=d:/chu.dmp tables=(table1)
基本上上面的导入导出够用了。不少情况要先是将表彻底删除,然后导入。
注意:
操作者要有足够的权限,权限不够它会提示。
数据库时可以连上的。可以用tnsping TEST 来获得数据库TEST能否连上。
Ⅱ 如何在Oracle中使用exp和imp导出,导入dmp数据库文件
1、首先进入命令行,点击开始,输入cmd。
Ⅲ 导入可执行文件 oracle导入imp exe pl sql ,这个文件在哪
一、在安装目录里,比如:
1、导入imp:F:appAdministratorproct11.1.0db_1BINimp.exe;
2、导出exp:F:appAdministratorproct11.1.0db_1BINexp.exe;
3、sql插入:F:appAdministratorproct11.1.0db_1BINsqlplus.exe;
二、需要注意的是:
plsql的导出功能要调用Oracle客户端中的exp.exe文件,需要安装完整的Oracle客户端。
(3)imp导出sql扩展阅读
1、使用PLSQL导入导出,都是在工具下面,导入导出,需要注意的是用到oracle的可执行文件
E:appAdministratorproct11.1.0db_1BINexp.exe;
2、如果导出的时候出现了闪动一下,但是没有导出来的情况,是因为没有配置环境变量
配置环境变量ORACLE_HOME=D:appproct11.2.0dbhome_1;
3、导出的时候如果出现exp-00011的错误,原因是该表中没有数据;
4、导入dmp文件的时候报错,其中一个可能的原因是权限,如果导出的时候是dba权限,现在用的另外一个账户登录,权限不够也会出现报错,此时需要给当前用户赋予dba权限。
Ⅳ 导入可执行文件 oracle导入imp exe pl sql ,这个文件在哪
一、文件在安装目录里
1、导入imp:F:appAdministratorproct11.1.0db_1BINimp.exe;
2、导出exp:F:appAdministratorproct11.1.0db_1BINexp.exe;
3、plsql插入:F:appAdministratorproct11.1.0db_1BINsqlplus.exe;
4、PLSQL导入导出,用到oracle的可执行文件:E:appAdministratorproct11.1.0db_1BINexp.exe;
备注:导入之前最好把以前的表删除,当然导入另外数据库除外。 另外导入时当发现进度条一直卡在一个点,而且导出的文件不再增大时,甚至是提示程序未响应,千万不要以为程序卡死了,这个导入导出就是比较缓慢,只要没有提示报错,或者导入完成就不要停止程序。
Ⅳ linux下怎么用exp和imp导出和导入指定的oracle数据库表
exphelp=y
imphelp=y
说的很清楚
数据库归档不归档都可以,scott是一个用户名,tiger是这个用户的密码,举两个例子
expscott/tigerowner=scottfile=temp.dmplog=temp.log
expscott/tigertables=(emp,dept)file=temp.dmplog=temp.log
Ⅵ 数据库的导入与导出
导出数据库命令:
mysqlmp -u root -p mydb2 > e:\mydb.sql
把数据库mydb2导出到e盘的mydb.sql
注意:在dos下进入mysql安装的bin目录下,但是不要登陆。
导入数据库命令:
mysqlmp -u root -p mydb2 < e:\mydb.sql
把数据库e盘的mydb.sql导入到mydb2
注意:要先新建mydb2 然后使用导入语句
oracle 用户创建 数据库的导入导出imp/exp
可以在SQLPLUS.EXE或者DOS(命令行)中执行执行环境:可以在SQLPLUS.EXE或者DOS(命令行)中执行,
DOS中可以执行时由于 在oracle 8i 中 安装目录ora81BIN被设置为全局路径,
该目录下有EXP.EXE与IMP.EXE文件被用来执行导入导出。
创建用户
给用户增加导入数据权限的操作
第一,启动sql*puls
第二,以system/manager登陆
第三,create user 用户名 IDENTIFIED BY 密码 (如果已经创建过用户,这步可以省略)
第四,GRANT CREATE USER,DROP USER,ALTER USER ,CREATE ANY VIEW ,
DROP ANY VIEW,EXP_FULL_DATABASE,IMP_FULL_DATABASE,
DBA,CONNECT,RESOURCE,CREATE SESSION TO 用户名字
第五, 运行-cmd-进入dmp文件所在的目录,
imp userid=system/manager full=y file=*.dmp
或者 imp userid=system/manager full=y file=filename.dmp
执行示例:
F:WorkOracle_Databackup>imp userid=test/test full=y file=inner_notify.dmp 17jquery.com
下面介绍的是导入导出的实例。
数据导出:
1 将数据库TEST完全导出,用户名system 密码manager 导出到D:chu.dmp中
exp system/manager@TEST file=d:chu.dmp full=y
exp fang/fang@ORCL file=d:oais20100401.dmp full=y
exp oais/oais@ORCL file=d:oais_mj.dmp full=y
2 将数据库中system用户与sys用户的表导出
exp system/manager@TEST file=d:chu.dmp owner=(system,sys)
3 将数据库中的表inner_notify、notify_staff_relat导出
exp aichannel/aichannel@TESTDB2 file= d:datanewsmgnt.dmp tables=(inner_notify,notify_staff_relat)
exp fang/fang@ORCL file=d:oais20100401_essmenu.dmp tables=(essmenu)
4 将数据库中的表table1中的字段filed1以"00"打头的数据导出
exp system/manager@TEST file=d:chu.dmp tables=(table1) query=" where filed1 like '00%'"
上面是常用的导出,对于压缩,既用winzip把dmp文件可以很好的压缩。
也可以在上面命令后面 加上 compress=y 来实现。 一起jquery,17jquery
数据的导入
1 将D:chu.dmp 中的数据导入 TEST数据库中。
imp system/manager@TEST file=d:chu.dmp
imp aichannel/aichannel@HUST full=y file=d:datanewsmgnt.dmp ignore=y
上面可能有点问题,因为有的表已经存在,然后它就报错,对该表就不进行导入。
在后面加上 ignore=y 就可以了。
2 将d:chu.dmp中的表table1 导入
imp system/manager@TEST file=d:chu.dmp tables=(table1)
基本上上面的导入导出够用了。不少情况要先是将表彻底删除,然后导入。 MSSQL的导入导出有三种方法,不可以在cmd模式下进行:1.使用Transact-SQL进行数据导入导出 我们很容易看出,Transact-SQL方法就是通过SQL语句方式将相同或不同类型的数据库中的数据互相导入导出或者汇集在一处的方法。如果是在不同的SQL Server数据库之间进行数据导入导出,那将是非常容易做到的。一般可使用SELECT INTO FROM和INSERT INTO。使用 SELECT INTO FROM时INTO后跟的表必须存在,也就是说它的功能是在导数据之前先建立一个空表,然后再将源表中的数据导入到新建的空表中,这就相当于表的复制(并不会复制表的索引等信息)。而INSERT INTO的功能是将源数据插入到已经存在的表中,可以使用它进行数据合并,如果要更新已经存在的记录,可以使用UPDATE。 SELECT * INTO table2 FROM table1 --table1和table2的表结构相同 INSERT INTO table2 SELECT * FROM table3 --table2和table3的表结构相同 当在异构数据库之间的进行数据导入导出时,情况会变得复杂得多。首先要解决的是如何打开非SQL Server数据库的问题。 在SQL Server中提供了两个函数可以根据各种类型数据库的OLE DB Provider打开并操作这些数据库,这两个函数是OPENDATASOURCE和OPENROWSET。它们的功能基本上相同,不同之处主要有两点。 2. 使用命令行BCP导入导出数据 很多大型的系统不仅仅提供了友好的图形用户接口,同时也提供了命令行方式对系统进行控制。在SQL Server中除了可以使用SQL语句对数据进行操作外,还可以使用一个命令行工具BCP对数据进行同样的操作。BCP是基于DB-Library 客户端库的工具。它的功能十分强大,BCP能够以并行方式将数据从多个客户端大容量复制到单个表中,从而大大提高了装载效率。但在执行并行操作时要注意的是只有使用基于 ODBC 或 SQL OLE DB 的 API 的应用程序才可以执行将数据并行装载到单个表中的操作。 BCP可以将SQL Server中的数据导出到任何OLE DB所支持的数据库的,如下面的语句是将authors表导出到excel文件中。 bcp pubs.dbo.authors out c:\temp1.xls -c -q -S"GNETDATA/GNETDATA" -U"sa" -P"password" BCP不仅能够通过命令行执行,同时也可以通过SQL执行,这需要一个系统存储过程xp_cmdshell来实现,如上面的命令可改写为如下形式。 EXEC master..xp_cmdshell 'bcp pubs.dbo.authors out c:\temp1.xls -c -q -S"GNETDATA/GNETDATA" -U"sa" -P"password"' 3. 使用数据转换服务(DTS)导入导出数据 DTS是SQL Server中导入导出数据的核心,它除有具有SQL和命令行工具BCP相应的功能外,还可以灵活地通过VBScript、JScript等脚本语言对数据进行检验、净化和转换。 SQL Server为DTS提供了图形用户接口,用户可以使用图形界面导入导出数据,并对数据进行相应的处理。同时,DTS还以com组件的形式提供编程接口,也就是说任何支持com组件的开发工具都可以利用com组件使用DTS所提供的功能。DTS在SQL Server中可以保存为不同的形式,可以是包的形式,也可以保存成Visual Basic源程序文件,这样只要在VB中编译便可以使用DTS com组件了。 DTS和其它数据导入导出方式最大的不同就是它可以在处理数据的过程中对每一行数据进行深度处理。以下是一段VBScript代码,这段代码在处DTS理每一条记录时执行,DTSDestination表示目标记录,DTSSource表示源记录,在处理逗婚姻状况地时,将源记录中的逗婚姻状况地中的0或1转换成目标记录中逗已婚地或逗未婚地。 Function Main() DTSDestination("姓名") = DTSSource("姓名") DTSDestination("年龄") = DTSSource("年龄") If DTSDestination("婚姻状况") = 1 Then DTSDestination("婚姻状况") = "已婚" Else DTSDestination("婚姻状况") = "未婚" End If Main = DTSTransformStat_OK End Function
Ⅶ oracle用命令行导出sql语句文本
导出命令:
1)单表导出:exp 用户名/密码@服务器别名 tables=表名 file=d:名称.dmp
expjm110/jm110@120_2tables=ajbfile=d:ajb.dmp
多张表:
expjm110/jm110@120_2tables=(ajb,jjdwb)file=d:ajb2.dmp
2)完全导出:也就是数据库中的所有表都导出
格式:exp 用户名/密码@服务器别名 file=d:名称.dmp
expjm110/jm110@120_2file=d:jm110.dmp
导入命令:
因为导入的内容都是dmp文件,所以未涉及到单表导入的情况,统一命令格式
格式:imp 新用户名/密码@新服务器别名 file=d:名称.dmp buffer=102400000 feedback=10000 log=d:名称.txt full=y
参数:buffer:设置缓存大小,越大越好,它决定导入的速度
full:完全导入,导出表结构及存储过程等等
impjm110/jm110@120_1file=d:jm110.dmpbuffer=102400000feedback=10000log=d:jm110.txtfull=y
Ⅷ 怎样将Oracle中的数据导出成SQL脚本
Oracle SQL Developer
1, 查询窗口查询数据
selececolumn1,column2,...
fromtable
wherecolumn3='';
2, 下载查询结果
查询结果中任意位置点击右键,点击导出。
Ⅸ 如何在Oracle中使用exp和imp导出,导入dmp数据库文件
1、EXP: 有三种主要的方式(完全、用户、表) 1、完全: EXP SYSTEM/MANAGER BUFFER=64000 FILE=C:\FULL.DMP FULL=Y 如果要执行完全导出,必须具有特殊的权限 2、用户模式: EXP SONIC/SONIC BUFFER=64000 FILE=C:\SONIC.DMP OWNER=SONIC 这样用户SONIC的所有对象被输出到文件中。 3、表模式: EXP SONIC/SONIC BUFFER=64000 FILE=C:\SONIC.DMP OWNER=SONIC TABLES=(SONIC) 这样用户SONIC的表SONIC就被导出 2、IMP: 具有三种模式(完全、用户、表) 1、完全: IMP SYSTEM/MANAGER BUFFER=64000 FILE=C:\FULL.DMP FULL=Y 2、用户模式: IMP SONIC/SONIC BUFFER=64000 FILE=C:\SONIC.DMP FROMUSER=SONIC TOUSER=SONIC 这样用户SONIC的所有对象被导入到文件中。必须指定FROMUSER、TOUSER参数,这样才能导入数据。 3、表模式: EXP SONIC/SONIC BUFFER=64000 FILE=C:\SONIC.DMP OWNER=SONIC TABLES=(SONIC) 这样用户SONIC的表SONIC就被导入。