day05_oracle--- Excel入库四种方法

本文介绍如何使用Excel结合SQL*Plus、SQL Loader等工具批量生成SQL插入语句,并通过不同格式文件(txt、csv)导入Oracle数据库的方法。涵盖利用Excel生成SQL语句、创建表结构、编写CTL控制文件等内容。

一、利用工式批量生成insert语句



比如文件中有id, name,sex(分别为A列和BC), 要导入的表为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文件

 

800044-20160321210247167-786183189.jpg

 

800044-20160321210248151-948298373.jpg

 

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

800044-20160321210249011-1518386379.jpg

 

 

 

三、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  Developersql  window里输入select  *  from  test  for  update;  
  2  F8执行  
  3  打开锁,  再按一下加号.  鼠标点到第一列的列头,使全列成选中状态,然后粘贴,最后commit提交即可。

     excel中的列跟oracle表中的列对应一致,然后excel 左侧 比 oracle 多剪切一列,复制,粘贴即可。

 

800044-20160321210249933-1499206979.jpg

 

 

 

800044-20160321210250620-738959264.jpg

 

800044-20160321210251683-387715152.jpg800044-20160321210252604-1664251056.jpg

 

直接把EXCEL中数据粘过来

800044-20160321210253511-2097842837.jpg

 

800044-20160321210254761-1757795217.jpg

 

800044-20160321210256089-964540936.jpg

 





转载于:https://www.cnblogs.com/xiaoxiao5ya/p/e3eeed2d6411ecde9ea6997b6b6df76a.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值