day05_oracle--- Excel入库四种方法

一、利用工式批量生成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文件

 

 

 

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

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

 

 

 

 

 

 

直接把EXCEL中数据粘过来

 

 

 





原文地址:https://www.cnblogs.com/xiaoxiao5ya/p/e3eeed2d6411ecde9ea6997b6b6df76a.html