Excel向oracle表中导入数据(SQL Loader)

      通过ORACLE数据库系统的高级应用工具SQL*Loader 可以将原来的Excel中存储的数据直接装入ORACLE数据库的表中。

      首先,在Microsoft-Excel中完成表格数据输入后,选择“保存文件”命令,在出现对话框的“文件类型”栏中选取“格式化文本文件(空格分隔)” 以形成一个标准格式化文本文件(*.PRN)或是选取“CSV(逗号分隔)” 形成一个逗号定界文件(*.CSV)。这两者的区别是:标准格式的文本文件中每个记录等长,数据间按原库文件字段长度紧凑排列,字符型字段数据左对齐,数 据型字段数据右对齐,不足部分用空格补足。逗号定界文件特点是各记录可不等长,字段按其定义顺序依次排列,字段间用逗号分隔,字符型字段和数据型字段的左 右端空格被消去。

      下面以"CSV(逗号分隔)"为例说明数据的导入过程.

1.假设有Excel表格如下(名为input.xls):

1   a name1 age1
2
  b name2 age2
3   c name3 age3
4   d name4 age4
5   e name5 age5
6   f name6 age6
7   g name7 age7
8   h name8 age8
9   i name9 age9
10   j name10 age10
11   k name11 age11
12   l name12 age12
13   m name13 age13
14   n name14 age14

2.把此Excel表格另存为:CSV(逗号分隔)(*.csv).名为input.csv,文件保存在C盘根目录.

3.新建一个文件,名为input.ctl.以文本文件的形式打开并输入以下代码:

LOAD DATA                        --1、控制文件标识
INFILE 'c:\input.csv'          --2、要输入的数据路径为c:\input.csv
APPEND  INTO TABLE person_zz            --3、向表person_zz中追加记录 
FIELDS TERMINATED BY ","              --4、字段终止于",",是一个逗号.也可以是X'09'表示一个制表符(TAB) 
(xh,wh,name,age)                  ----定义列对应顺序 

      注意:如果上边的这个CTL文件不好用,可以尝试把注意文件去掉,因为我没尝试过加注意,所以不知道CTL文件是否可以这样加注释,呵呵.

4.在oracle数据库中新建一个名为person_zz的表,里面包含四个字段,分别为xh,wh,name,age.注意,在创建数据库的时候,一定确保字段长度足够大.

CREATE TABLE person_zz(
       xh        VARCHAR2(4),
       wh       VARCHAR2(10),
       name   VARCHAR2(6),
       age      VARCHAR2(50),
);

5.在确保正确安装Oracle的情况下,在命令行中(Ctrl+R后,输入cmd回车).

输入如下命令和参数:

C:\Documents and Settings\user>sqlldr userid=jwzh/jwzh@orcl_170 control=c:/input.ctl

userid=用户名/密码@连接串.

control=转换格式控制文件所在位置.

执行成功后显示如下信息.

SQL*Loader: Release 10.2.0.1.0 - Production on 星期四 7月 28 17:26:04 2011

Copyright (c) 1982, 2005, Oracle.  All rights reserved.

达到提交点 - 逻辑记录计数 64
达到提交点 - 逻辑记录计数 128
达到提交点 - 逻辑记录计数 192
达到提交点 - 逻辑记录计数 256
达到提交点 - 逻辑记录计数 276
 

大功告成...

猜你喜欢

转载自ysj5125094.iteye.com/blog/1135063