欢迎投稿

今日深度:

oracle批量插入数据,oracle插入

oracle批量插入数据,oracle插入


有一次开发一个功能,需要导入别人提供的几万条数据,

数据在一个*.sql文件中,大概有8万条数据

insert into testtable(id,name) values(1,'1')   -----8万多条

按照平常习惯,直接把所有insert into 语句拷贝到一个pl/sql新开的sql窗口中执行,结果直接卡死了。

然后打开pl/sql--->File--->Open--->Sql Script直接执行*.sql文件进行导入,结果,依然卡死。

后面经同事帮助,用另外一个方法解决了这个问题:

打开pl/sql--->File--->New---->Command Window--->输入@,然后敲Enter键,选择要导入的数据所在的文件(一般是*.sql文件)---执行成功


oracle表批量插入数据

两种方法
1. 使用pl/sql developer
blog.csdn.net/...756990
这种方法比较简单,我曾经这么一次导入过几万条记录

2.sqlldr
首先将你的excel文件另存为csv格式(默认逗号间隔,另存为csv,不只是改后缀名)
然后用sqlldr导入。sqlldr的参数很多,简单的几个就可以了:
建一个控制文件control.txt:

load data
infile 'f:\test.csv'
into table test1
(id char terminated by ',',
name char terminated by ',',
height char terminated by ',',
birth char terminated by whitespace)

----这里你根据需要,修改数据文件的名字和路径。括号里面的字段名和字段数也根据实际情况修改。由于保存的是csv,字段间以逗号隔开,因此控制文件里定义最后一个字段以whitespace来分隔,其它的用','

然后使用sql*loader:
sqlldr userid=USERNAME/PASSWORD@XXXX control=f:\control.txt log=f:\test.log bad=f:\testbad.csv

userid后跟用户名密码,@后的是网络服务名,需要在客户端的tnsnames.ora文件里定义。control后的值是刚刚建的控制文件的路径,日志将生成在log参数指定的位置上,如果有记录没有导入成功,这些记录会放置在bad后指定的文件里。
 

怎把数据批量导入oracle中

原来是什么数据库,也是ORACLE的么?
是的话用PL/SQL工具导入也行,或者CMD下 “IMP”
 

www.htsjk.Com true http://www.htsjk.com/shujukunews/2337.html NewsArticle oracle批量插入数据,oracle插入 有一次开发一个功能,需要导入别人提供的几万条数据, 数据在一个*.sql文件中,大概有8万条数据 insert into testtable(id,name) values(1,'1') -----8万多条 按照平常...
评论暂时关闭