天天看点

批量导入数据到oracle

有一些数据需要录入到数据库。这些数据位于excel和word文档里。

导入数据嘛,这有啥难的?

不过,这些数据并不是从数据库里导出来的,ID还要用序列号生成,我不知道导入的话,该咋整。也许是可以导入的,但我不知道方法。

作为一名程序员,当然不可能一条条地录进去,这会玷污了程序员这个称号。我用了一个方法,可以导进去,记录如下:

思路:

1、创建一个临时用的表temp

2、开启编辑模式,将数据粘贴到temp

3、insert into 目标表 select from temp

批量导入数据到oracle
insert into meta(id,category,parentid,name,p1)
select seq_meta.nextval,9,52,t.name,t.p1 from temp t;      
--克隆一个project的表tmp_project
create table tmp_project as select * from project;

--删掉某列,这个列是记录当前系统时间的,对于导入没啥帮助
alter table tmp_project drop column createdate;

--然后导入EXCEL,略

--找出表"project"的列
--注意表名区分大小写。按照ORACLE的习惯,一般都是大写
SELECT T.COLUMN_NAME || ',' FROM USER_TAB_COLUMNS T WHERE T.TABLE_NAME='PROJECT';

--从tmp_project复制到project,中途有转换
insert into project(ID,
NAME,
PRJ_TYPE,
STATE,
START_TIME,
MONEY,
UNIT,
ADDRESS,
CONTENT,
NOTE,
BY_NATION,
X,
Y,
CITY,
CREATEDATE
) 
select seq_project.nextval,
NAME,
PRJ_TYPE,
STATE,
START_TIME,
MONEY,
UNIT,
ADDRESS,
CONTENT,
NOTE,
case when BY_NATION='是' then 1 else 0 end,
X,
Y,
CITY,
sysdate from tmp_project;