一次折腾几千万的话, 那么设置一下, 有 20W了, 就自动提交一下。
set autocommit on;
set autocommit 200000;
然后,假如你回的目标数据库, 是归档的答话, 可以
INSERT /*+ append */ INTO 目标表 nologging SELECT * FROM 源表@DBLINK;
commit;
set autocommit off;
假如你的 目标表 上面, 有 索引的话, 建议先删除 索引。
等 上面的 INSERT 语句执行完毕后, 再重建索引。
2. oracle大量数据进行入库操作
你的理解是正确的,可以这样做。
生成固定格式的数据文件,然后可以使用oracle的数据加载工具sqlldr进行直接插入数据,效率上会好很多,在并发的情况下,oracle声称可以每小时100G的数据量。
3. 怎么插入大量数据到Oracle数据库中
可以使用oracle sql loader批量导入数据:
生成测试数据的EXCEL文件,把EXCEL文件另存为CSV(逗号分隔)(*.csv),控制文件设置为用逗号分隔。
示例:
LOAD DATA
INFILE ‘d:\car.csv’
APPEND INTO TABLE t_car_temp
FIELDS TERMINATED BY ","
(phoneno,vip_car)
保存为input.ctl
最后在命令行下输入:
C:\>sqlldr userid=system/manager
control=input.ctl(在unix环境下亦同)
默认日志文件名为:input.log
默认坏记录文件为:input.bad
4. oracle数据库如何将大量数据(.dmp)导入的问题
DMP文件导入:
1.用SYS用户名,以DBA的身份登入到数据库(ORACLE客户端Enterprise Manager Console)
2.在安全性 -- 用户 若所要导入的用户对象已存在 则移去 然后新建之(这样就可以删除该用户下所有对象了) 表空间选择原来的。
3.在该用户的角色中加入DBA角色
4.在命令行下执行:imp aioss/aioss@ORCL10G file=d:\aioss0819.dmp full=y ignore=y commit=y
imp没有操作界面的,如果你想用图形界面的话,就可以使用第三方软件,相对的,我觉得日本出的那个object browser 就好一点了,现在出到10版本的,上面的导出导入功能也是引用oracle的imp/exp模块的,不过就是界面操作的,可以在提示下设置参数。
5. 如何向Oracle数据库表中进行大数据量的插入并提交
一次折腾几千万的话,
那么设置一下,
有
20W了,
就自动提交一下。
set
autocommit
on;
set
autocommit
200000;
然后,假如你的目标数据库,
是归档的话,
可以
INSERT
/*+
append
*/
INTO
目标表
nologging
SELECT
*
FROM
源表@DBLINK;
commit;
set
autocommit
off;
假如你的
目标表
上面,
有
索引的话,
建议先删除
索引。
等
上面的
INSERT
语句执行完毕后,
再重建索引。
6. oracle sqldeveloper大数据量如何导入导出
方法一:利用PL/SQL Developer工具导出:
菜单栏---->Tools---->Export Tables
方法二:利用cmd的操作命令导出,详情如下:
1:G:Oracleproct10.1.0Client_1NETWORKADMIN目录下有个tnsname.ora文件,内容如下:
CMSTAR=
(DESCRIPTION=
(ADDRESS_LIST=
(ADDRESS=
(PROTOCOL=TCP)(HOST=172.18.13.200)(PORT=1521))
)
(CONNECT_DATA=
(SERVICE_NAME=cmstar)
)
)
其中:CMSTAR为数据库名,HOST为IP地址,所以可以仿效上面的例子手动添加数据录连接。
2:用cmd进入命令行
输入:tnsping cmstar
就是测试172.18.13.200是否连接成功
3:导入与导出,如下:
数据导出:
1 将数据库TEST完全导出,用户名system 密码manager
导出到D:chu.dmp中
exp system/manager@TEST file=d:chu.dmp
full=y
2将数据库中system用户与sys用户的表导出
expsystem/manager@TESTfile=d:chu.dmpowner=(system,sys)
3将数据库中的表table1、table2导出
expsystem/manager@TESTfile=d:chu.dmptables=(table1,table2)
4将数据库中的表table1中的字段filed1以"00"打头的数据导出
expsystem/manager@TESTfile=d:chu.dmptables=(table1)query="wherefiled1like'00%'"
上面是常用的导出,对于压缩我不太在意,用winzip把dmp文件可以很好的压缩。
不过在上面命令后面加上compress=y就可以了
数据的导入
1将D:chu.dmp中的数据导入TEST数据库中。
impsystem/manager@TESTfile=d:chu.dmp
上面可能有点问题,因为有的表已经存在,然后它就报错,对该表就不进行导入。
在后面加上ignore=y就可以了。
2将d:chu.dmp中的表table1导入
impsystem/manager@TESTfile=d:chu.dmptables=(table1)
注意事项:导出dmp数据时需要有导出表的权限的用户,否则不能导出。
PL/SQL Developer是Oracle数据库中用于导入或导出数据库的主要工具,本文主要介绍了利用PL/SQL
Developer导入和导出数据库的过程,并对导入或导出时的一些注意事项进行了说明,接下来我们就一一介绍。
导出步骤:
1 tools ->export user object 选择选项,导出.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
pl/sql
developer
第一种是导出为.dmp的文件格式,.dmp文件是二进制的,可以跨平台,还能包含权限,效率也很不错,用得最广
。
第二种是导出为.sql文件的,可用文本编辑器查看,通用性比较好,但效率不如第一种,适合小数据量导入导出。尤其注意的是表中不能有大字段(blob,clob,long),如果有,会提示不能导出(提示如下:
table contains one or more LONG columns cannot export in sql format,user Pl/sql
developer format instead)。
第三种是导出为.pde格式的,.pde为Pl/sql
developer自有的文件格式,只能用Pl/sql developer自己导入导出,不能用编辑器查看。
7. 怎么向oracle中导入大sql文件
向oracle中导入大sql文件:
在SQL_PLUS里面执行:
sql>@full_path/test.sql;
例:sql>@D:/test.sql;
不需要commit; 一般都是在test.sql 里面最后加上一个commit;
但是需要注意的是:在test.sql文件里面每条语句后必须加上“;”,代表一条语句的执行。