Oracle导入导出感觉也挺麻烦的。使用工具pl/sql developer可以按照以下操作:
1、点击Tools--Export User Objects
这种方式可以导出当前用户拥有的所有对象,包括表、视图、触发器、同义词等等,对于表,只能导出表结构,不能导出数据,选中要导出的对象,设置好导出的路径和各个参数后,点击Export就OK
PS:这种方式还可以导出其他用户的对象,在下面user下拉框中选择要用户就可以,默认是系统当前登录用户
2、如果想将表中数据一起导出,可用Tools--Export Tables,这种方式导出的文件,本身就带着创建表结构的sql语句选中要导出的表(可选多个),导出方式有三种:
Oracle Export,Sql Insert,pl/sql developer
第一种是导出为.dmp的文件格式,.dmp文件是二进制的,可以跨平台,还能包含权限,效率也很不错,用得最广
第二种是导出为.sql文件的,可用文本编辑器查看,通用性比较好,但效率不如第一种,适合小数据量导入导出。尤其注意的是表中不能有大字段(blob,clob),如果有,会提示不能导出,可以用第一种和第三种方式导出。
第三种是导出为.pde格式的,.pde为Pl/sql developer自有的文件格式,只能用Pl/sql developer自己导入导出;不能用编辑器查看,效率不知道怎么样
PS:只有“Oracle Export”方式导出再导入后,表结构和索引结构没有发生变化,另两种方式都改变了索引类型。
导入的情况和导出一样
工具最终还是调用命令,oracle导入导出的命令是imp/exp。exp命令可以把数据从远程数据库服务器导出到本地的dmp文件,imp命令可以把dmp文件从本地导入到远处的数据库服务器中。 利用这个功能可以构建两个相同的数据库,一个用来测试,一个用来正式使用。
执行环境:可以在SQLPLUS.EXE或者DOS(命令行)中执行,
DOS中可以执行时由于 在oracle 8i 中 安装目录ora81BIN被设置为全局路径,
该目录下有EXP.EXE与IMP.EXE文件被用来执行导入导出。
oracle用java编写,SQLPLUS.EXE、EXP.EXE、IMP.EXE这两个文件有可能是被包装后的类文件。
SQLPLUS.EXE调用EXP.EXE、IMP.EXE所包裹的类,完成导入导出功能。
下面介绍的是导入导出的实例。
数据导出:
1 将数据库TEST完全导出,用户名system 密码manager 导出到D:\daochu.dmp中
exp system/manager@TEST file=d:\daochu.dmp full=y
2 将数据库中system用户与sys用户的表导出
exp system/manager@TEST file=d:\daochu.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:\daochu.dmp tables=(table1) query=" where filed1 like '00%'"
上面是常用的导出,对于压缩,既用winzip把dmp文件可以很好的压缩。
也可以在上面命令后面 加上 compress=y 来实现。
数据的导入,imp使用的基本格式:imp[username[/password[@service]]]
将D:\daochu.dmp 中的数据导入 TEST数据库中。
imp system/manager@TEST file=d:\daochu.dmp
imp aichannel/aichannel@TEST full=y file=d:\datanewsmgnt.dmp ignore=y
上面可能有点问题,因为有的表已经存在,然后它就报错,对该表就不进行导入。
在后面加上 ignore=y 就可以了。
将d:daochu.dmp中的表table1 导入
imp system/manager@TEST file=d:\daochu.dmp tables=(table1)
1. 获取帮助
imp help=y
2. 导入一个完整数据库
imp system/manager file=bible_db log=dible_db full=y ignore=y
3. 导入一个或一组指定用户所属的全部表、索引和其他对象
imp system/manager file=seapark log=seapark fromuser=seapark imp
system/manager file=seapark log=seapark fromuser=(seapark,amy,amyc,harold)
4. 将一个用户所属的数据导入另一个用户
imp system/manager file=tank log=tank fromuser=seapark touser=seapark_copy
imp system/manager file=tank log=tank fromuser=(seapark,amy)
touser=(seapark1, amy1)
5. 导入一个表
imp system/manager file=tank log=tank fromuser=seapark TABLES=(a,b)
6. 从多个文件导入
imp system/manager file=(paycheck_1,paycheck_2,paycheck_3,paycheck_4)
log=paycheck, filesize=1G full=y
7. 使用参数文件
imp system/manager parfile=bible_tables.par
bible_tables.par参数文件:
#Import the sample tables used for the Oracle8i Database Administrator's
Bible. fromuser=seapark touser=seapark_copy file=seapark log=seapark_import
8. 增量导入
imp system./manager inctype= RECTORE FULL=Y FILE=A
不少情况要先是将表彻底删除,然后导入。
注意:
操作者要有足够的权限,权限不够它会提示。
数据库时可以连上的。可以用tnsping TEST 来获得数据库TEST能否连上。
附录一:
给用户增加导入数据权限的操作
第一,启动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
屏幕显示
Import: Release 8.1.7.0.0 - Production on 星期四 2月 16 16:50:05 2006
(c) Copyright 2000 Oracle Corporation. All rights reserved.
连接到: Oracle8i Enterprise Edition Release 8.1.7.0.0 - Production
With the Partitioning option
JServer Release 8.1.7.0.0 - Production
经由常规路径导出由EXPORT:V08.01.07创建的文件
已经完成ZHS16GBK字符集和ZHS16GBK NCHAR 字符集中的导入
导出服务器使用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
在导入导出命令中加上feedback=1000可以让过程显示一个不断增多的“...”,以改变以往的闪烁的光标
New:
exp/imp已经很好用了,但是唯一的确定是速度太慢,如果1张表的数据有个百千万的,常常导入导出就长时间停在这个表这,但是从Oracle 10g开始提供了称为数据泵新的工具expdp/impdp,它为Oracle数据提供高速并行及大数据的迁移。
imp/exp可以在客户端调用,但是expdp/impdp只能在服务端,因为在使用expdp/impdp以前需要在数据库中创建一个Directory
create directory dump_test as '/u01/oracle10g';
grant read, write on directory dump_test to piner
然后就可以开始导入导出
expdp piner/piner directory=dump_test dumpfile=user.dmp 导出用户的数据
expdp piner/piner directory=dump_test dumpfile=table.dmp tables=test1,test2 导出表数据
impdp piner/piner directory=dump_test dumpfile=user.dmp 导入该用户数据
impdp piner/piner directory=dump_test dumpfile=table.dmp 导出表数据
Oracle导入导出最大的问题就是版本问题,在客户端进行导出而不是数据服务器本身时,很容易失败。高版本的客户端经常对低版本数据库服务端很无奈,下面抄录某位达人的测试记录:
exp导出老是出现ORA-00904.
有2个原因:
1.服务器和客户端一个是x86bit的,一个是x86_64bit的安装程序。
2.客户端和服务器端的版本不兼容。
情况1:
windows x86_64bit 11.2.0.1 的客户端导出windows x86 10.2.0.3的Oracle Database。
无法执行导出,接收到ORA-00904报错。
EXP-00008: 遇到 ORACLE 错误 904
ORA-00904: "POLTYP": 标识符无效
EXP-00000: 导出终止失败
情况2:
Linux x86_64bit 10.2.0.5 的客户端导出windows x86 10.2.0.3的Oracle Database。
无法执行导出,接收到ORA-00904报错。
EXP-00008: ORACLE error 904 encountered
ORA-00904: "POLTYP": invalid identifier
EXP-00000: Export terminated unsuccessfully
情况3:
windows x86 11.1.0.6的客户端导出windows x86 10.2.0.3的Oracle Database。
可以进行导出,但是导出有一大堆ORA-00904报错。
EXP-00008: 遇到 ORACLE 错误 1003
ORA-01003: 语句未进行语法分析
. . 正在导出表 SM_T_SYS_PARAM
EXP-00008: 遇到 ORACLE 错误 904
ORA-00904: "MAXSIZE": 标识符无效
. . 正在导出表 SM_T_SYS_WORKFLOW
EXP-00008: 遇到 ORACLE 错误 1003
ORA-01003: 语句未进行语法分析
. . 正在导出表 SM_T_USER
EXP-00008: 遇到 ORACLE 错误 904
ORA-00904: "MAXSIZE": 标识符无效
. . 正在导出表 SM_T_USER_ORG
EXP-00008: 遇到 ORACLE 错误 1003
ORA-01003: 语句未进行语法分析
情况4:
windows x86 10.2.0.1的客户端导出windows x86 10.2.0.3的Oracle Database。
导出正常。
由上可以总结出,x86_64bit的Oracle导出x86bit的Oracle会报此错,11gR1,11gR2导出10g的Oracle也会报此错,只有满足10g的x86bit客户端导出10g的x86bit的Oracle Database才能正常导出。
查询数据库服务器版本使用:SELECT * from v$version;
我自己碰到的问题是oracle 11.2的客户端,从oracle 11.1服务端导数据失败,实在很崩溃。Oracle的数据导出还是版本严格对应为好。
相关推荐
"Oracle数据库导出数据工具"就是为了满足这种需求而存在的。 Oracle数据库提供了多种导出数据的方法,其中最常用的是Data Pump(也称为expdp)和传统的Export工具(exp)。这两种工具都有其特定的用途和优缺点。 1...
**一、Oracle数据库导出命令(EXP)** 1. **USERID参数** `USERID=demo/demopwd@orcl`:这部分指定了连接到Oracle数据库的凭证。`demo`是用户名,`demopwd`是密码,`orcl`是Oracle服务名或连接字符串,代表你想要...
"oracle数据库导出表结构到WORD文档"是一个实用的操作,它能够帮助我们生成包含所有表定义、字段信息、主键、外键等的详细报告。通过这个工具,我们可以快速地将Oracle中的数据库对象信息整理成Word文档,方便打印、...
Oracle 数据库导出文本的方法 Oracle 数据库导出文本的方法是 Oracle 数据库的入门级应用,旨在介绍如何将 Oracle 数据库中的数据导出到文本文件中。在实际应用中,我们经常需要将查询结果导出到文本文件中,以便于...
本工具是一款基于Java编写的桌面应用程序,专为Oracle数据库的导入导出提供便利。 1. **Oracle数据库导入导出的重要性** - 数据迁移:当需要将数据从一个Oracle实例迁移到另一个实例时,导入导出工具是关键。 - ...
"Oracle数据库导出表结构的工具"正是为了解决这类问题而存在的。 1. **Oracle数据泵(Data Pump)**: Oracle Data Pump是Oracle数据库提供的一种高效、快速的数据导入和导出工具。它取代了早期的EXP和IMP工具,...
Java 导出 Oracle 数据库数据 Java 是一种流行的编程语言,广泛应用于各种领域。Oracle 是一种关系数据库管理系统,广泛应用于企业级应用中。在实际项目中,数据备份和恢复是非常重要的工作。本文将介绍如何使用 ...
"Oracle数据库导出Excel工具"就是为此目的设计的,它可以方便地将Oracle用户下的数据库所有表及其相关的注释转换为Excel文件,创建一个数据模型字典。 首先,这个工具的核心工作流程可能包括以下几个步骤: 1. **...
Oracle数据库导出导入流程;Oracle数据库导出导入流程
本教程将基于"oracle数据库导出与导入.rar"压缩包,详细介绍如何在Oracle环境中执行这些操作。 首先,Oracle的导出(Export)是通过Data Pump工具实现的,它允许我们将数据库对象和数据保存到一个二进制的DMP文件中...
"Oracle数据库导出"是指在Oracle环境中,将数据库中的数据、表结构、用户权限等信息导出到一个可移植的文件中,以便备份或在其他系统中导入。这个过程通常涉及到Oracle的数据泵工具(Data Pump),它提供了高效的...
Oracle数据库导入导出命令(备份与恢复) Oracle数据库是目前最流行的RELATIONAL DATABASE MANAGEMENT SYSTEM(关系数据库管理系统),它提供了强大且灵活的数据存储和管理功能。为了确保数据的安全和可靠性,Oracle...
总之,MySQL和Oracle数据库结构的导出是一项实用的功能,能够帮助我们更好地管理和理解数据存储的逻辑。通过这个项目,我们可以自动化这个过程,提升工作效率。如果你正在处理类似的任务,不妨尝试这个工具,或者...
"Oracle数据库表结构导出工具Excel"就是为了解决这样的需求而设计的。 DBExport是一款高效实用的工具,专门用于将Oracle数据库的表结构信息转换成Excel格式。这款工具允许管理员或开发者轻松地导出数据库中的表定义...
本文将详细探讨如何修改远程端口,关闭3389端口以及处理Oracle数据库导出时遇到的问题。 首先,我们来谈谈“修改远程端口”。默认情况下,许多服务和应用程序会使用众所周知的端口号进行通信,例如SSH(Secure ...
在日常管理和开发过程中,有时我们需要将Oracle数据库的表结构导出为其他格式,便于分析、备份或共享。"Oracle数据库表结构导出工具"就是为此目的设计的实用程序,它能够方便地将表结构转换成易于查看和处理的Excel...
Oracle照片导出是一款基于C#开发的工具,主要用于从Oracle数据库中导出Blob类型的图片数据。Blob(Binary Large Object)是Oracle数据库用于存储大对象,如图像、音频或视频文件等非结构化数据的数据类型。这个工具...
### Oracle数据库数据导出至Excel、TXT、Word等文档详解 #### 一、概述 在日常的数据库管理和维护工作中,经常需要将Oracle数据库中的数据导出到其他格式的文件中,比如Excel、TXT或者Word等,以便于进一步的数据...
Oracle数据库表结构导出器是一套用来完成将Oracle数据库中的表结构导出成Word文档,并输出标准的打印报表格式的软件。亲测oracle绝对好使 ,另附有链接信息,请先看好说明再操作.不会的加我qq87611894