博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

Sql Loder

Posted on 2008-12-01 23:21  徐正柱-  阅读(458)  评论(0编辑  收藏  举报

例一、

使用Oracle的sqlldr工具来将SDSS.CSV文件中的数据导入数据库。
  
  SDSS.CSV 放置于 E:\ 内容如下:
  
  2.3757291096910399E-4,-8.9490277843631194,20.302597,
  0.00023851549291556,-0.88450365314434698,20.098101,
  2.5168890447969299E-4,7.7169029946908094E-2,18.762859,
  2.9486118387225802E-4,-9.8447540892170409,19.943598,
  2.94865362739442E-4,-9.8447540642891909,19.944597,
  
  操作步骤:
  1、在Oracle中按照导入数据的格式建立一个空表
  
  类型   大小  小数
  RA   Number  23    20
  DEC   Number  23    20
  MAG   Number  8     6
  
  2、编写一个loader.ctl文件,内容如下
  
  load data
  infile 'E:\SDSS.csv'
  into table SDSS_STARS
  fields terminated by ","
  ( RA, DEC, MAG )
  
  3、在CMD中执行以下语句:
  
  sqlldr scott/tiger control=loader.ctl
  
  4、自动在当前目录下生成两个文件
  
  默认日志文件名为:loader.log
  默认坏记录文件为:SDSS.bad
  
  注意事项:
  1、必须在服务器本机上操作,不能在只安装Oracle客户端的机器上使用。
  2、CSV文件的内容是以“,“分隔的,如果数据在结尾没有逗号导入时就会出错。
  可以利用UltraEdit等文本编辑器处理一下,将 ^p 替换为 ,^p 就可以在每行的末尾加上一个逗号了。
  3、数据导入需要较长的时间。


----------------------------------------------------------------------------------------------------

 例二、

环境说明:
 数据库:Oracle8.1.6OEM;
 系  统:Windows2000 Server.
*******************************************************************************************
用记事本创建控制文件input.ctl,内容如下:

load data
infile 'test.txt'  --数据文件
append into table Test
fields terminated by '|' --或者是x'09'来标识,也即字段终止与制表符TAB
(    --字段名称
cp_bh char(30),
mc char(50),
cp_ljmc char(100),
zyh char(20),
dj
)

*******************************************************************************************

文本文件test.txt中的内容格式,例如下面

10300108200|XPB65-113S|后盖  PP  0.34kg|0030200525      |3.42000008
10300108200|XPB65-113S|洗涤桶盖  浅兰透明ABS|0030200877      |15.52000046

一般情况都是相互之间导出导入数据,比方说从excel导出的数据你可以将其保存为:制表符分隔,起名为test,……,等等。
*******************************************************************************************
使用sql*loader进行数据导入(sqlldr -? 查看帮助)

在“运行”里执行,命令如下:

 sqlldr username/pw control=路径\input.ctl data=路径\test.txt log=路径 bad=路径