数据文件导入oracle数据库

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/jiyang_1/article/details/54668011

首先,提下数据转化为能导进数据库的格式,office excel有很强大的功能可以进行批量的操作,不用重复的进行增列,删列,分列,同时还可以转换成csv格式,朋友可以了解一下录制宏,以及使用visual basic编程,进行批量格式转化,省去不少麻烦。进入正题,数据文件导入数据库的三种办法如下:

1、pl/sql developer工具导入

进入要导入的数据库用户,选择tools->TextImporter->open data file (文件中的csv的表头必须和数据库表头对应一样,这样方便)->Data to Oracle->选择Owner和Table->点击 Import进行导入。注意此种方法特别慢。

2、sqlldr 导文件进数据库

进入需要导进数据库的文件下,写insert.ctl文件

文件内容如下:

load   data   
infile   'weather8.csv'   
append   into   table  weather.weatherdatapart8
fields terminated by ',' 
trailing nullcols  #如要导入源文件此列内容为空,在导入到数据库表中,此列内容就是null
(
   路径,日期,时间,温度,P0,P,Pa,湿度,风向,风速,ff10,ff3,总云量,WW,W1,W2,Tn,Tx,Cl,Nh,H,Cm,Ch,VV,Td,RRR,tR,E,Tg,E1,sss
)
打开cmd命令,输入命令sqlldr weather/weather@weatherfw control=insert.ctl

此内容仅供参考,此方法比上一个方法快了很多。

3、建立外部表导入

将要导的文件放到数据库安装目录下,例如:C:\app\changyong\admin\orcl\dpdump

create table WEATHERDATA8
(
  路径   VARCHAR2(100),
  日期   VARCHAR2(50),
  时间   VARCHAR2(30),
  温度   VARCHAR2(50),
  P0   VARCHAR2(50),
  P    VARCHAR2(50),
  PA   VARCHAR2(50),
  湿度   VARCHAR2(10),
  风向   VARCHAR2(100),
  风速   VARCHAR2(50),
  FF10 VARCHAR2(100),
  FF3  VARCHAR2(100),
  总云量  VARCHAR2(100),
  WW   VARCHAR2(200),
  W1   VARCHAR2(100),
  W2   VARCHAR2(100),
  TN   VARCHAR2(100),
  TX   VARCHAR2(100),
  CL   VARCHAR2(200),
  NH   VARCHAR2(100),
  H    VARCHAR2(100),
  CM   VARCHAR2(200),
  CH   VARCHAR2(200),
  VV   VARCHAR2(100),
  TD   VARCHAR2(100),
  RRR  VARCHAR2(100),
  TR   VARCHAR2(100),
  E    VARCHAR2(100),
  TG   VARCHAR2(100),
  E1   VARCHAR2(100),
  SSS  VARCHAR2(100)
)
organization external
(
  type ORACLE_LOADER
  default directory DATA_PUMP_DIR
  access parameters 
  (
    records delimited by newline
    fields TERMINATED BY ','
    optionally enclosed by '"' #无视字符串中双引号
    missing field values are null #如要导入源文件此列内容为空,在导入到数据库表中,此列内容就是null
  )
  location (DATA_PUMP_DIR:'weather8.csv')
)
reject limit UNLIMITED;

insert into WEATHERDATA select * from WEATHERDATA8
创建外部表后,需将数据从外部表导入到内部表中,关于外部表的详细参数可以自己查阅相关文档。

此种方法导数据很快,导千万行数据也是瞬间完成。


猜你喜欢

转载自blog.csdn.net/jiyang_1/article/details/54668011