一、利用工式批量生成insert语句
比如文件中有id, name,sex三列(分别为A列和B列,C列), 要导入的表为person(person_id, person_name,person_sex)
在excel 文件的sheet的最右列, 添加一列, 对应第一行数据的单元格写入以下内容:
= "INSERT INTO PERSON(PERSON_ID, PERSON_NAME,PERSON_SEX) VALUES('" & B1 & "', '" & C1 & "', '" & D1 & "');"
然后把这一行复制到所有数据行对应的列中.
这一列的内容拷贝出去保存, 即成为可以直接在sql*plus下运行的脚本.
二、sqlldr加载txt文件
create table test(
id number,
username varchar2(10),
password varchar2(10),
sj varchar2(20)
);
vi input.ctl
load data
infile 'test2.txt'
append into table test
fields terminated by X'09'
(id,username,password,sj)
sqlldr userid=scott/lipengfei control=input.ctl
三、sqlldr加载csv文件
打开EXCEL将文件另存为*.CSV的格式。
一、创建表
create table t_wlm_user_right(
id int,
user_name varchar2(30),
login_code varchar2(30)
);
二、用oracle用户上传csv文件
三、编写ctl文件
vi t_wlm_user_right.ctl
load data
infile 'test3.csv'
Append into TABLE t_wlm_user_right
FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"'
TRAILING NULLCOLS
(ID INTEGER EXTERNAL TERMINATED BY ',',
USER_NAME char(30),
LOGIN_CODE char(30))
四、抽取数据
sqlldr scott/lipengfei control =t_wlm_user_right.ctl log=t_wlm_user_right.log skip=1 direct = y
四、直接粘到plsql工具中
创建表
create table T_VOLUME(
ID varchar2(32),
STATE varchar2(2),
INVALIDDATE Date
);
在单个文件不大的情况下(少于100000行),并且目的表结构已经存在的情况下——对于excel而言肯定不会超过了,因为excel文件的最大行为65536—— 可以全选数据复制,然后用PLSQL Developer工具。
1 在PLSQL Developer的sql window里输入select * from test for update;
2 按F8执行
3 打开锁, 再按一下加号. 鼠标点到第一列的列头,使全列成选中状态,然后粘贴,最后commit提交即可。
excel中的列跟oracle表中的列对应一致,然后excel 左侧 比 oracle 多剪切一列,复制,粘贴即可。
直接把EXCEL中数据粘过来