Chinaunix首页 | 论坛 | 博客
  • 博客访问: 411077
  • 博文数量: 119
  • 博客积分: 1470
  • 博客等级: 上尉
  • 技术积分: 1258
  • 用 户 组: 普通用户
  • 注册时间: 2006-02-24 13:50
文章分类

全部博文(119)

文章存档

2018年(6)

2017年(11)

2016年(4)

2013年(8)

2012年(1)

2011年(2)

2010年(4)

2009年(37)

2008年(16)

2006年(30)

我的朋友

分类: Oracle

2009-06-17 00:17:33

昨天看了一下oracle中數據的導入方法,在oracle中數據導入方法主要有以下幾種:
1,直接用insert ......values()語句;
   example:
insert into book(no,name,type) values('2006001','basketball park','magazine')
 
2,use select query sentence;
   example:
insert into book_1 select * from book2 where book1='condition'
 
3,use PL/SQL procedure;
  example:
SQL>edit input_example.sql
-----------input prompt
accept p_no prompt 'please input book no'
accept p_name prompt 'please input book name'
accept p_type prompt 'please input the type of book'
------------evaluation
declare
v_no book.no%type:=&p_no;
v_name book.name%type:=&p_name;
v_type book.type%type:=&P_type;
-------------insert
begin
insert book(no,name,type)
  values(v_no,v_name,v_type);
commit work;
end;
/
 
4,使用 Oracle Loader插入記錄
  這裡重點講一下Oracle Loader的使用,很多時候我們會使用Oracle Loader進入資料的導入工作。像在工廠裡我們要把別的機器或是人為的資料檔導入Oracle通常我們會使用Oracle Loader.
    再一說來,oracle loader其實也是一個較為自動的導入工具。
一,比如現在別人給我們圖書館1000本書,並用e-mail給了我們一個清單。
  清單是用一個*.txt,內容如下:
 
#bookname,bookno,bookqty,booktype,intime,price
#書名,書號,書的數量,書的類型,加入時間,價格
C語言程序設計,001,13,課本,20060521,20.45
oracle學習與提高,002,15,課外書,20060522,45
...........
...........
...........
 
如果這個清單有十幾條,我們完全可以用手工insert但是如果是一千條那我們用手工就太慢了,而且容易出錯,這時我們就可以使用oracle Loader.
二,sql loader 的例子
c:\sqlldr userid=bookadm1/sysadm control=input.ctl log=input.log bad=input.bad errors=30 skip=1 direct=true
 
sqlldr是 oracle loader的命令,後面跟的是參數,參數控制著具體的導入方法,參數解釋如下:
userid=bookadm1/sysadm  --username='bookadm',password='sysadm'
control=input.ctl       --control file name input.ctl
log=input.log           --log file name input.log
bad=input.bad           --when input error to take down error record 
errors=30               --permit error rows
skip=1                  --skip rows
direct=true             --use direct directory
 
其中input.ctl是控制著輸入數據文件的格式。
-- this is the control file
load data   ----關鍵字,指出這是一個控制文件。
infile 'd:\book\200605.txt'  ---要導入的文件的位置及文件名
append(insert,replace) into table book --向BOOK的表中追加(append)(插入一個空表(insert),替換一個表(replace原表內容將被刪除))
fields terminated by ','  --兩個字段間的分隔符
(bookname char,
  bookno   number,
  bookqty  number,
  booktype char,
  intime date 'yyyymmdd'
  price  number(6,2)
)                        --定義列對應的順序
阅读(1214) | 评论(0) | 转发(1) |
给主人留下些什么吧!~~