怎样将.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的有用
|