怎么往oracle导数据,从oracle导出数据

oracle怎么导出数据

Oracle导出导出有两中方式:一、利用exp imp导出导入;二、利用Oracel数据泵expdp impdp导出导入。

成都创新互联是专业的月湖网站建设公司,月湖接单;提供成都网站设计、网站建设,网页设计,网站设计,建网站,PHP网站建设等专业做网站服务;采用PHP框架,可快速的进行月湖网站开发网页制作和功能扩展;专业做搜索引擎喜爱的网站,专业的做网站团队,希望更多企业前来合作!

一、利用exp imp导出导入

exp imp 语法如下:

exp:

1) 将数据库orcl完全导出

exp system/manager@orcl file=d:\orcl_bak.dmp full=y

2) 将数据库中system用户的表导出

exp system/manager@orcl file=d:\system_bak.dmp owner=system

3) 将数据库中表table1,table2导出

exp system/manager@orcl file=d:\table_bak.dmp tables=(table1,table2)

4) 将数据库中的表customer中的字段mobile以"139"开头的数据导出

exp system/manager@orcl file=d:\mobile_bak.dmp tables=customer query=\"where mobile like '139%' \"

imp:

1) 将备份文件bak.dmp导出数据库

imp system/manager@orcl file=d:\bak.dmp

如果数据表中表已经存在,会提示错误,在后面加上ignore=y就可以了。

2) 将备份文件bak.dmp中的表table1导入

imp system/manager@orcl file=d:\bak.dmp tables=(table1)

exp imp导出导入数据方式的好处是只要你本地安装了Oracle客户端,你就可以将服务器中的数据导出到你本地计算机。同样也可以将dmp文件从你本地导入到服务器数据库中。但是这种方式在Oracle11g版本中会出现一个问题:不能导出空表。Oracle11g新增了一个参数deferred_segment_creation,含义是段延迟创建,默认是true。当你新建了一张表,并且没用向其中插入数据时,这个表不会立即分配segment。

解决办法:

1、设置deferred_segment_creation参数为false后,无论是空表,还是非空表,都分配segment。

在sqlplus中,执行如下命令:

SQLalter system set deferred_segment_creation=false;

查看:

SQLshow parameter deferred_segment_creation;

该值设置后,只对后面新增的表起作用,对之前建立的空表不起作用,并且注意要重启数据库让参数生效。

2、使用 ALLOCATE EXTEN

使用 ALLOCATE EXTEN可以为数据库对象分配Extent,语法如下:

alter table table_name allocate extent

构建对空表分配空间的SQL命令:

SQLselect 'alter table '||table_name||' allocate extent;' from user_tables where num_rows=0

批量生成要修改的语句。

然后执行这些修改语句,对所有空表分配空间。

此时用exp命令,可将包括空表在内的所有表导出。

二、利用expdp impdp导出导入

在Oracle10g中exp imp被重新设计为Oracle Data Pump(保留了原有的 exp imp工具)

数据泵与传统导出导入的区别;

1) exp和imp是客户端工具,他们既可以在客户端使用,也可以在服务端使用。

2) expdp和impdp是服务端工具,只能在Oracle服务端使用。

3) imp只适用于exp导出文件,impdp只适用于expdp导出文件。

expdp导出数据:

1、为输出路径建立一个数据库的directory对象。

create or replace directory dumpdir as 'd:\';

可以通过:select * from dba_directories;查看。

2、给将要进行数据导出的用户授权访问。

grant read,write on directory dumpdir to test_expdp;

3、将数据导出

expdp test_expdp/test_expdp directory=dumpdir dumpfile=test_expdp_bak.dmp logfile=test_expdp_bak.log schemas=test_expdp

注意:这句话在cmd窗口中运行,并且最后不要加分号,否则会提示错误。因为这句话是操作系统命令而不是SQL。

impdp导入数据:

1、给将要进行数据导入的用户授权访问。

grant read,write on directory dumpdir to test_impdp;

2、将数据导入

impdp test_impdp/impdp directory=dumpdir dumpfile=test_expdp_bak.dmp remap_schema=test_expdp:test_impdp

oracle导入EXCEL数据的两种方式

工具栏选择“工具”--》“ODBC导入器”--》选择“Excel Files”,输入用户密码,连接--》选择文件,双击目录,选择文件--》选择sheet--》切换“到Oracle的数据”--》选择表名以及数据对应字段和类型--》点击导入--》完成

将Excel另存为制表符分隔的txt,选择文本导入器(text。。),选择文件File,data to oracle设置对应字段,一定要选择好Nvarchar,import完成。

如何将数据导入oracle数据库

1、 运行MySQL Migration Toolkit,一路“Next”到“Source Database”,在Database System中选择Oracle Database Server,如果第一次使用会告之要求加载驱动程序ojdbc14.jar。

加载驱动程序之后,界面将变成如下的形式,在其中填写Oracle数据库的连接信息,按“Next”继续。

2、 在Target Database中默认Database System为MySQL Server,在Connection Parameters中填写相应的MySQL数据库的连接信息,按“Next”继续。

3、进行数据库连接测试,测试通过后按“Next”到Source Schemata Selection,点选准备进行数据迁移的Schemata后按“Next”继续。

4、在Object Type Selection,点Detailed selection按钮,在下方左侧列表中选择不进行迁移的表,将其放入右侧列表中,即左侧列表剩余的表都将进行数据迁移。选择好之后按“Next”继续。

5、

在Object Mapping的Migration of type Oracle Schema,如果要设置参数,点Set

Parameter按钮。如果默认数据库表为UTF8的话,则选择Multilanguage;如果默认数据库表为GBK的话,则需要选择User

defined,并在下方填写charset=gbk, collation=gbk_general_ci。Migration of type

Oracle Table中要设置参数点Set Parameter按钮。如果默认数据库表为UTF8的话,则选择Data

consistency/multilanguage;如果默认数据库表为GBK的话,则需要选择User

defined,并在下方填写addAutoincrement=yes, charset=gbk,

collation=gbk_general_ci, engine=INNODB。选择好之后按“Next”继续。

6、再到Manual

Editing,在这里可以修改建表脚本。由于Oracle与MySQL之间语法规则的差异,通常需要对脚本的数据类型以及默认值进行调整,比如

Oracle中通常会对Timestamp类型的数据设置默认值sysdate,但在MySQL中是不能识别的。在Filter中选择Show All

Objects,然后在Migrated

Objects中选择要修改脚本的表,再点击左下方的Advanced就可以进行脚本编辑了。修改完之后点击右侧Apply

Changes按钮保存,按“Next”继续。

7、然后一路“Next”,如果没有提示出错的话,就可以将指定表中的数据导入MySQL了。如果有提示出错信息,则需要返回到Manual Editing处对脚本重新进行修改。

要补充一点,在导大容量数据特别是CLOB数据时,可能会出现异常:“Packets larger than max_allowed_packet

are not

allowed”。这是由于MySQL数据库有一个系统参数max_allowed_packet,其默认值为1048576(1M),可以通过如下语句

在数据库中查询其值:

show VARIABLES like '%max_allowed_packet%';

修改此参数的方法是在mysql文件夹找到my.ini文件,在my.ini文件[mysqld]中添加一行:

max_allowed_packet=16777216

重启MySQL,这样将可以导入不大于16M的数据了,当然这数值可以根据需要作调整。

如何导出oracle数据库数据

导出dmp:选择oracle导出,找到bin下面的imp.exe,设定导出文件名导出

导出表数据,查询全表数据(不带rowid),全部选中右键导出SQL文件

Oracle怎么导入数据

我给你一些数据库常用的导入导出命令吧:

该命令在“开始菜单运行CMD”中执行

一、数据导出(exp.exe)

1、将数据库orcl完全导出,用户名system,密码accp,导出到d:\daochu.dmp文件中

exp system/accp@orcl file=d:\daochu.dmp full=y

2、将数据库orcl中scott用户的对象导出

exp scott/accp@orcl file=d:\daochu.dmp owner=(scott)

3、将数据库orcl中的scott用户的表emp、dept导出

exp scott/accp@orcl file= d:\daochu.dmp tables=(emp,dept)

4、将数据库orcl中的表空间testSpace导出

exp system/accp@orcl file=d:\daochu.dmp tablespaces=(testSpace)

二、数据导入(imp.exe)

1、将d:\daochu.dmp 中的数据导入 orcl数据库中。

imp system/accp@orcl file=d:\daochu.dmp full=y

2、如果导入时,数据表已经存在,将报错,对该表不会进行导入;加上ignore=y即可,表示忽略现有表,在现有表上追加记录。

imp scott/accp@orcl file=d:\daochu.dmp full=y ignore=y

3、将d:\daochu.dmp中的表emp导入

imp scott/accp@orcl file=d:\daochu.dmp tables=(emp)

oracle 数据怎么导入?

我给你一些数据库常用的导入导出命令吧:\x0d\x0a该命令在“开始菜单运行CMD”中执行\x0d\x0a一、数据导出(exp.exe)\x0d\x0a1、将数据库orcl完全导出,用户名system,密码accp,导出到d:\daochu.dmp文件中\x0d\x0aexp system/accp@orcl file=d:\daochu.dmp full=y\x0d\x0a\x0d\x0a2、将数据库orcl中scott用户的对象导出\x0d\x0aexp scott/accp@orcl file=d:\daochu.dmp owner=(scott)\x0d\x0a\x0d\x0a3、将数据库orcl中的scott用户的表emp、dept导出\x0d\x0aexp scott/accp@orcl file= d:\daochu.dmp tables=(emp,dept)\x0d\x0a\x0d\x0a4、将数据库orcl中的表空间testSpace导出\x0d\x0aexp system/accp@orcl file=d:\daochu.dmp tablespaces=(testSpace)\x0d\x0a\x0d\x0a二、数据导入(imp.exe)\x0d\x0a1、将d:\daochu.dmp 中的数据导入 orcl数据库中。\x0d\x0aimp system/accp@orcl file=d:\daochu.dmp full=y\x0d\x0a\x0d\x0a2、如果导入时,数据表已经存在,将报错,对该表不会进行导入;加上ignore=y即可,表示忽略现有表,在现有表上追加记录。\x0d\x0aimp scott/accp@orcl file=d:\daochu.dmp full=y ignore=y\x0d\x0a\x0d\x0a3、将d:\daochu.dmp中的表emp导入\x0d\x0aimp scott/accp@orcl file=d:\daochu.dmp tables=(emp)


文章名称:怎么往oracle导数据,从oracle导出数据
本文来源:http://scyanting.com/article/hdgchs.html