实时搜索: oracle如何导出数据

oracle如何导出数据

684条评论 4953人喜欢 1367次阅读 249人点赞
我公司的网站服务器最近出现问题,网页是基于SQL数据库的.现在要重新对服务器硬盘进行处理,要保留必要数据.想问一下如何把数据库的数据保留下来.服务器的系统是2K server 数据库软件装的是sql2000.由于时间比较紧,请大家帮忙具体怎么操作.还有就是重新装了sql2000软件后,里面涉及到的某些用户,数据库的名字是否要与以前的一样. , 我想把公司的某个用户下的数据库表和数据都拷贝到本地,拿回来研究,嘿嘿;但是在导出数据库的时候 SQL出错了;
exp cnp_user/password@192.168.0.127 file=d:\daochu.dmp full=y
怎...

Oracle怎么导出存储过程:

1、首先登录到数据库中,点击右上角有个工具栏,点击工具栏上的tools。

2、选择导出用户对象,点击tools工具之后,向下查找Export User Objects功能,通过这个功能导出数据。

3、选择需要导出的表或者序列或者存储过程等。在Type列中展示的是对象属性,表、序列和存储过程等。这里要选择存储过程或者序列。

4、选择多个导出的对象。按住ctrl键进行多选导出的对象。点击Output File输出文件路径,选择文件路径输入文件名称,后缀是sql。如果后缀是sql,则是一些数据库语句,可以直接在其他应用上执行,

5、开始导出数据脚本。点击Export按钮,开始对选中的对象进行导出成数据脚本。出的时候需要选择一个目录。

6、查看导出文件。导出完成后,双击打开导出后的文件,就可以看到是一些建表存储过程等脚本。查看导出文件就可以看到是具体的脚本语言。

如何将Oracle数据导入MySQL?: 可以导成文本格式的数据,比如使用特殊的符号分隔:||,然后MySQL可以使用LOAD DATA 命令 或者mysqlimport工具导入,即可....关键四点:
1.表结构定义要对应;
2.数据分隔符号一定不在数据中出现,否则格式就乱了;
3.数据导出的字符集编码与需要存储的字符集编码要对应起来;
4.导入的时候设置对应的字符集;

备注:上述办法是通过人工完成的,还有一些收费工具可用的,你可以google下,还有一种办法就是编写程序的模式,把数据读出来再入MySQL.若是停机维护,推荐已经列出的方法。

oracle怎么只导出表数据不导出表结构: tools
export tables
sql insert
不选drop tables、create tables

oracle数据导出用什么格式: 1、exp和imp是客户端工具程序,它们既可以在客户端使用,也可以在服务端使用;
2、expdp和impdp是服务端工具程序,他们只能在ORACLE服务端使用,不能在客户端使用;
3、导出文件以dmp 结尾。
注意:
保证导出dmp文件的方式是一样的:exp导出对应imp导入,expdp对应impdp导入;
最好是同版本数据库之间导入导出。

oracle 10g导出的数据能不能导入11g:

Oracle 11g数据导入到10g
一、在11g服务器上,使用expdp命令备份数据
11g 导出语句:EXPDP USERID='facial/facial@orcl as sysdba' schemas=facialdirectory=DATA_PUMP_DIR dumpfile=test.dmp logfile=test.log version=10.2.0.1.0
二、在10g服务器上,使用impdp命令恢复数据
准备工作:1.建库2.建表空间3.建用户并授权4.将test.dmp拷贝到10g的dpdump目录下
--创建表空间
create tablespace TS_Facial datafile 'E:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\Facial.DBF' size 500M autoextend on next 50M;
--创建用户
create user Facial identified by Facial default tablespace TS_Facial;
--授权给用户
grant connect,resource,dba to Facial;
test.dmp 和 test.log 放在E:\oracle\product\10.2.0\admin\orcl\dpdump目录下
10g 导入语句:IMPDP USERID='facial/facial@orcl as sysdba' schemas=facialdirectory=DATA_PUMP_DIR dumpfile=test.dmp logfile=test.log version=10.2.0.1.0

 

oracle10g 数据导入到oracle11g 中:
在oracle10g 上执行:Exp ts/ts@orcl file=D:\tianshan.dmp

在oracle11g 上创建好表空间和用户后执行:Imp ts/ts@orcl file=D:\tianshan.dmp

Oracle11g 数据导入到oracle10g 中:
1.在oracle11g 服务器命令行中用expdp 导出数据
expdp ts/ts@orcl directory=expdp_dir dumpfile=tianshan.dmp logfile=tianshan.log version=10.2.0.1.0 (schemas=ccense)

2.在oracle10g 服务器DOS 命令行中用IMPDP 导入数据:
把oracle11g 的备份文件放到oracl10g 服务器的impdp_dir 目录中,并创建好相应的用户和表空间,然后执行下面的命令:
impdp ts/ts@orcl directory=impdp_dir dumpfile=tianshan.dmp logfile=tianshan.log version=10.2.0.1.0 (schemas=ccense)

Oracle 的imp/exp 组件的一个操作原则就是向下兼容,且有一些规则:

1、低版本的exp/imp 可以连接到高版本(或同版本)的数据库服务器,但高版本的exp/imp 不能连接到低版本的数据库服务器。

2、高版本exp 出的dmp 文件,低版本无法imp(无法识别dmp 文件);低版本exp 出的dmp 文件,高版本可以imp(向下兼容)。

3、从Oracle 低版本Export 的数据可以Import 到Oracle 高版本中,但限于Oracle 的相邻版本,如从Oracle 7 到 Oracle 8。对于两个不相邻版本间进行转换,如从Oracle 6 到 Oracle 8,则应先将数据输入到中间版本—Oracle 7,再从中间数据库转入更高版本Oracle 8。

SQL企业版如何导出数据库: 一、导出导入SQL Server里某个数据库
  1.在SQL Server企业管理器里选中要转移的数据库,按鼠标右键,选所有任务->备份数据库。
  2.备份 选数据库-完全,
  目的 备份到 按添加按钮
  文件名 在SQL Server服务器硬盘下输入一个自定义的备份数据库文件名(后缀一般是bak)
  重写 选重写现有媒体
  最后按确定按钮。
  如果生成的备份数据库文件大于1M,要用压缩工具压缩后再到Internet上传输。
  3.通过FTP或者remote desktop或者pcanywhere等方法
  把第二步生成的备份数据库文件或者其压缩后的文件传到目的SQL Server数据库,如果有压缩要解压。
  4.目的SQL Server数据库如果还没有此数据库,先创建一个新的数据库;
  然后选中这个新创建的数据库,按鼠标右键,选所有任务->还原数据库
  还原->从设备->选择设备->磁盘->添加(找到要导入的备份数据库文件名)->确定
  还原备份集->数据库-完全
  最后按确定按钮。完全的数据库导入成功了。
  (如果在已经存在的SQL Server数据库上还原数据库可能遇到有还有其它人正在使用它而恢复操做失败,
  可以去看 ->管理->当前活动->锁/对象->找到数据库下锁的进程号->到查询分析器里用kill 进程号杀掉这些锁,然后再做还原)
  注意:如果在原有的目的SQL Server数据库上从备份文件(*.bak)还原数据库会把已经存在的表、存储过程等数据库对象全部替换成最近这次导入的备份数据库里的内容。
  如果一定要还原备份文件(*.bak)里部分数据,需要另外建一个新数据库,其逻辑名称和数量同备份文件(*.bak)里数据库的逻辑名称和数量一致;
  新数据库的物理文件名称取得一定要和备份文件(*.bak)里数据库的物理文件不一样才行。

  二、导出导入SQL Server里某个表
  1.没有防火墙,同一个局域网里或不在同一个局域网里,但通过Internet可以互相访问
在SQL Server企业管理器里选中目的数据库 ,按鼠标右键,选所有任务->导入数据-> 弹出数据转换服务导入/导出向导窗口->下一步->选数据源-> 数据源(用于SQL Server的Microfost OLE DB提供程序)->服务器(可选择局域网内能访问到的所有SQL Server服务器,或者直接输入IP地址)->选择使用windows身份验证还是使用SQL Serve身份验证(输入数据库的用户名和密码)->数据库(可选择上面选中SQL Server服务器上所有权限范围内的数据库)->下一步->选择目的->目的(用于SQL Server的Microfost OLE DB提供程序)->服务器(默认为上一步里选中的导出服务器,也可以选其它局域网内能访问到的所有SQL Server服务器,或者直接输入IP地址)->目的数据库(可选择上面选中SQL Server服务器上所有权限范围内的数据库)->下一步->制定表复制或查询->选从源数据库复制表和视图(也可以选择用一条查询指定要传输的数据)->下一步->选择源表和视图->在要导入的表和视图前面选中源->目的出现同样的表名(可以手工修改成别的表名)->转换->列映射和转换里面可以修改源表和目的表之间字段的对应关系,修改目的表字段的类型和长度等,并可以选择创建目的表,在目的表中增加行,除去并重新创建目的表,启用标志插入等选项->确定->下一步->保存、调度和复制包->时间->立即运行(如果要实现隔一段时间自动导出导入数据,选调度DTS包以便以后执行)->保存(可以不选)->[ 保存DTS包(如果以后还要转移这批相同的数据,可以把本次导出导入的内容和步骤保存起来,存到SQL Server即可,保存的时候要输入DTS的包名及详细描述)->下一步-> ]->完成
  正在执行包->图形界面显示创建表及插入记录的步骤和状态->完成
  2.经过防火墙,不在同一个局域网里
  ①、导出表里的数据到文本文件:
  在SQL Server企业管理器里选中目的数据库,按鼠标右键,选所有任务-> 导入数据->弹出数据转换服务导入/导出向导窗口->下一步->选数据源-> 数据源(用于SQL Server的Microfost OLE DB提供程序)->服务器(可选择局域网内能访问到的所有SQL Server服务器)->选择使用windows身份验证还是使用SQL Serve身份验证(输入数据库的用户名和密码)->数据库(可选择上面选中SQL Server服务器上所有权限范围内的数据库)->下一步->选择目的->目的(文本文件)-> 文件名(在自己的电脑硬盘中生成一个自定义的文本文件) ->下一步->制定表复制或查询->选从源数据库复制表和视图(也可以选择用一条查询指定要传输的数据)->下一步->选择目的文件格式->源(选择要导出的表)->用默认的带分隔符->选第一行包含有列名称选项->下一步->保存、调度和复制包->时间->立即运行(如果要实现隔一段时间自动导出到文本文件,选调度DTS包以便以后执行)->保存(可以不选)-> [保存DTS包(保存的时候要输入DTS的包名及详细描述)->下一步->]->完成
  正在执行包->图形界面显示表到文本文件的步骤和状态->完成
  如果生成的文本文件大于1M,要用压缩工具压缩后再到Internet上传输。
  ②、通过FTP或者remote desktop或者pcanywhere等方法把
  第①步生成的文本文件或者其压缩后的文件传到目的SQL Server数据库,如果有压缩要解压。
  ③、把文本文件导入目的SQL Server数据库
  直接把文本文件导入目的SQL Server数据库里跟文本文件同名的新表名时,默认的会把所有字段类型都变成字符串。
所以我们要这样做:
在源SQL Server数据库上先生成创建表的sql语句
在SQL Server查询分析器里->选中源数据库里表名->按右键->在新窗口中编写对象脚本->创建->复制下新窗口内创建表名的sql语句到目标SQL Server数据库上查询分析器里执行创建表名的sql语句,生成空表结构。(如果已经存在这样的表名,修改建表的sql语句,在表名后面加上导入时间的年月信息,例如table_0113)
  调用导入/导出工具->弹出数据转换服务导入/导出向导窗口->下一步->选数据源-> 数据源(文本文件)->文件名(已传到目的SQL Server数据库下要导入的文本文件,后缀可以不是*.txt,但是常规文本编辑器能打开的文件,文件类型选全部)->下一步->选择文件格式->用默认的带分隔符->选第一行包含有列名称选项->下一步->制定列分割符->逗号->下一步->选择目的->目的(用于SQL Server的Microfost OLE DB提供程序)->服务器(可选择目标局域网内能访问到的所有SQL Server服务器)-> 选择使用windows身份验证还是使用SQL Serve身份验证(输入数据库的用户名和密码)->数据库(可选择上面选中SQL Server服务器上所有权限范围内的数据库)->下一步->选择源表和视图->修改目的表名为刚才创建的表名->转换(在目的表中追加行) ->下一步->保存、调度和复制包->时间->立即运行(如果要实现隔一段时间自动把文本文件导入,选调度DTS包以便以后执行)->保存(可以不选)-> [保存DTS包(保存的时候要输入DTS的包名及详细描述)->下一步->]->完成
  正在执行包->图形界面显示文本文件到表的步骤和状态->完成
如果要更改导入时间的年月信息的表名,例如table_0113到原来的表名,在企业管理器里把原来的表名改成table_old_0113,table_0113改名成table。这会对应用程序里频繁访问的表照成一定的中断。
  注意:源表上的建的索引和主键约束不能用上面介绍的1和2方法转移过来,还需要手工来建索引和主键。
  标志种子和not null的约束可以继承过来。
  导入视图时会把源视图里所有的真实数据导入成一个新表,而不是视图。

  三、SQL Server存储过程或用户定义的函数导出导入
  1、导出存储过程或用户定义的函数成*.sql文件
  在SQL Server企业管理器里选中源数据库,存储过程->单选或者多选中要转移的存储过程->用户定义的函数->单选或者多选中要转移的函数->按鼠标右键,选所有任务->生成SQL脚本->确定->在自己的电脑硬盘中生成一个自定义的*.sql文件->保存->正在生成SQL脚本->成功
  2、如果目的数据库经过防火墙,不在同一个局域网里,要通过FTP或者remote desktop或者pcanywhere等方法把第1步生成的*.sql文件传到目的SQL Server数据库服务器上。
  3、用查询分析器进入SQL Server目的数据库,从菜单里选文件->打开->打开查询文件->选中第1步生成的*.sql文件->点执行查询的绿色倒三角型快捷键->查询窗口里会出现执行后的消息(有时候可能因为存储过程和用户定义的函数之间有一定的依赖关系,会报一些错。
  最好先执行用户定义的函数的*.sql文件,再执行存储过程的*.sql文件)

  四、ORACLE数据库里表导入SQL Server数据库
  1、在目的SQL Server数据库服务器上安装ORACLE Client软件或者ORACLE ODBC Driver. 在$ORACLE_HOME\network\admin\tnsnames.ora里配置ORACLE数据库的别名(service name)。
  具体配置方法可以参考本站文章:客户端连服务器的注意事项
  2、在WIN2000或者win2003服务器->管理工具->数据源(ODBC)->系统DSN(本机器上NT域用户都可以用)->添加->ORACLE ODBC Driver->完成->data source name 可以自定义,我一般填ORACLE数据库的sid标志,description里可以填ORACLE数据库详细描述,也可以不填->data source service name 填第1步定义的ORACLE数据库别名->OK。
  (用户DSN和文件DSN也可以类似配置,但使用的时候有一些限制)
  3、SQL Server的导入和导出数据工具里->选数据源-> 数据源(其它(ODBC数据源))->选第2步在ODBC里定义的系统DSN source name,用户名密码处填写ORACLE系统的用户名和密码->下一步->选择目的,选SQL Server数据库(跟上面第二点讲的一致,就不重复了)。
  注意:在ORACLE表和SQL Server表之间'转换'那步很重要,可以改变默认的字段数据类型,如image->text,decimal->int

  五、SQL Server数据库里表导入ORACLE数据库
  方法一.导出目的选通过ODBC数据源里定义的ORACLE数据库, 注意ORACLE里表名都是大写的.我一般在ORACLE这边先生成好表结构,再选择SQL SERVER源表往ORACLE目的表里追加数据.数据传输速度比方法二慢.
  方法二.从SQL Server数据库导入数据到ORACLE数据库可以选择用Windows下ORACLE9i企业或者个人版数据库做中转。

oracle导出数据出错,遇到关键字password怎么办?: @192.168.0.127
这个不行,这个应该是服务名 @server 之类的。

oracle 表数据 怎么远程导到另一个机器的数据库里: 举例导出数据库服务abc,用户user,密码psd下的table1,table2,table3表到d:\data目录下,导出文件名为test.dmp,语句为:  exp user/psd@adc file=d:\data\test.dmp tables=(table1,table2,table3) 。  将上述文件恢复的语句为:  exp user/psd@adc full=y file=d:\data\test.dmp.注意:如果将备份文件中的所有表恢复,需要加上full=y。如果只须只需要恢复table1,则语句为:  exp user/psd@adc file=d:\data\test.dmp tables=table1。即必须指明倒入那些信息,要么全部要么部分表。  以下是摘抄的别人的经验。  执行环境:可以在SQLPLUS.EXE或者DOS(命令行)中执行,DOS中可以执行时由于 在oracle 8i 中 安装目录\ora81\BIN被设置为全局路径,该目录下有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:\data\newsmgnt.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 来实现。  数据的导入  1 将D:\daochu.dmp 中的数据导入 TEST数据库中。  imp system/manager@TEST file=d:\daochu.dmp imp aichannel/aichannel@HUST full=y file=file= d:\data\newsmgnt.dmp ignore=y上面可能有点问题,因为有的表已经存在,然后它就报错,对该表就不进行导入。  在后面加上 ignore=y 就可以了。  2 将d:\daochu.dmp中的表table1 导入imp system/manager@TEST file=d:\daochu.dmp tables=(table1)  基本上上面的导入导出够用了。不少情况要先是将表彻底删除,然后导入。 简单点可以借助工具:网上找一下就可以了。

  • nc粉是什么意思

    地下城与勇士dnf装备怎么增幅?: 打红字书,再去克伦特那儿增幅,红字书通过活动或者拍卖行获取 ...

    443条评论 1625人喜欢 4175次阅读 560人点赞
  • 100意外险有多少种

    求大佬。1660TI。大将。和。1660TI 猛禽那个好?急: 华硕GTX1660Ti 6G猛禽显卡 好于 影驰GTX1660Ti 6G 大将 显卡,但猛禽的价格也更高,华硕猛禽系列跟影驰的名人堂系列才是同一级别的对比,华硕GTX1660TI 6G猛禽显卡的价格都可以买个RTX2...

    235条评论 6427人喜欢 4973次阅读 806人点赞
  • 21三体症能活多久

    DNF红字武器,增幅7上8会掉0吗?: 会的。。这个跟强化装备是一个样子的~~7上8失败就归零的 ...

    312条评论 4095人喜欢 4447次阅读 663人点赞