SQLLOAD使用的一个简单搜集

[复制链接]
查看11 | 回复2 | 2005-10-30 17:05:33 | 显示全部楼层 |阅读模式
怎样将.txt.xls的文档倒入oracle数据库?
可選方法很多
可用ORACLE本身SQLLOAD工具
可借助很多軟體
1. 轉成*.DBF 用DELPHI DATAPUMP
2. 用ODBC
3. 在DELPHI中直接將*.TXT *.XLS==>ORACLE
SQLLOAD的一个例子
假如有表test(aaa varchar2(10),bbb varchar2(10),ccc number)
数据文本c:\test.txt,内容为:12345|abcde|123
那么可以写控制文件如下:
load data
append into table test
fields terminated by "|"
(aaa,bbb,ccc)
然后存为c:\test.ctl。
运行c:\orant\bin\sqlldr80.exe
userid=username/password@connectstring control=c\test.ctl
data=c:\test.txt
这样应该就ok了。

利用SQLLOAD进行数据迁移的步骤:
1、整理原有的宽带接入用户的数据
2、将需要倒入到新系统的数据,按需要准备好EXCEL表:
3、将这些EXCEL的表的数据另存为*.txt文件(以tab分开数据)
4、分别为每个表的数据的倒入准备一个控制文件,如文件:address.ctl:
load data
infile 'e:\input\address.txt'
append into table address
fields terminated by X'09'
(ID,CITY,DISTRICT,MISC,PROVINCE,ZIP_CODE )
说明:infile是指定将要倒入的数据的存放文件
append 是指定将数据追加到倒入到address表
(ID,CITY,DISTRICT,MISC,PROVINCE,ZIP_CODE ) 是指定将要倒 入到表
addrss的数据的列,对应第二步的txt文件。
5、利用Oracle的批量数据倒入工具:sqlldr将txt的数据按控制文件要求倒
入,命令步骤如下:
>cd $ORACLE_HOME
>sqlldr broadman/passwd@nxbm control=e:\address.ctl log=e:\log
bad=e:\bad discard=e:\discard
在确认后,按回车,sqlldr会将数据从txt文件中倒入到数据库的表内,查看
log文件,确认所有的数据成功的倒入数据库。
问题:
1.在 sqlldr里terminated by X'09'是什么意思?
X'09' 表示 字段之间通过 tab 键分割
09是tab键的ascii编码
比如 terminated by ';' 表示以分号分割
当然你也可以同样把分号表示成ascii编码
2.sqlldr不能触发触发器吗?
SQL*LOADER 装载数据有两种方式:
1.conventional path (default)
2. direct path
如果sqlldr的keywords direct=true的话,触发器就不会被触发.
--------------------------------------
希望对首次使用SQLLOAD的有用

回复

使用道具 举报

千问 | 2005-10-30 17:05:33 | 显示全部楼层
谢谢!
回复

使用道具 举报

千问 | 2005-10-30 17:05:33 | 显示全部楼层
pheonix_wan
凤舞九天:
谢谢你的帖子,给了我很大的帮助,第一个例子我试成功了,但是第二个有点问题:
>sqlldr broadman/passwd@nxbm control=e:\address.ctl log=e:\log
bad=e:\bad discard=e:\discard
当中的log=e:\logbad=e:\bad discard=e:\discard 是否必须,对它的路径和名字有什么要求?
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行