您的位置:首页 > 数据库 > Oracle

day05_oracle--- Excel入库四种方法

2016-03-21 21:03 447 查看
一、利用工式批量生成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中数据粘过来







来自为知笔记(Wiz)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: