在oracle的安裝目錄下有相應的demo,包含創建表、增加記錄數據相應的腳本。
hr用戶(注意它的表空間為system)
$ORACLE_HOME/demo/schema/human_resources/hr_main.sql,
sh用戶(注意它的表空間為example)
$ORACLE_HOME/demo/schema/sales_history/sh_main.sql,執行完后一些表中的數據要通過sqlldr來導入數據。
sqlldr 用法
$>sqlldr userid=sh/franlk control=*.ctl log=*.log (*代表相應的文件)
我們在$ORACLE_HOME/demo/schema/sales_history/目錄下能夠看到.ctl與.dat文件
.ctl是數據導入的規則文件,內容如下:
LOAD DATA
INFILE 'E:\oracle\ora92\demo\schema\sales_history\sh_sales.dat' ------自定義部分(要導入的數據)
APPEND
INTO TABLE sales
FIELDS TERMINATED BY "|" ------依據.dat中分隔符
( PROD_ID, CUST_ID, TIME_ID, CHANNEL_ID, PROMO_ID,
QUANTITY_SOLD, AMOUNT_SOLD)
因為.dat中的日期,我們必須設置一下NLS_LANG
那么我們在dos下執行順序應該是:
$>set NLS_LANG=american_america.zhs16cgb231280
$>sqlldr userid=sh/franlk control=E:\oracle\ora92\demo\schema\sales_history\sh_cust.ctl log=E:\oracle\ora92\demo\schema\log\sh_cust.log
$>sqlldr userid=sh/franlk control=E:\oracle\ora92\demo\schema\sales_history\sh_prod.ctl log=E:\oracle\ora92\demo\schema\log\sh_prod.log
$>sqlldr userid=sh/franlk control=E:\oracle\ora92\demo\schema\sales_history\sh_promo.ctl log=E:\oracle\ora92\demo\schema\log\sh_promo.log
$>sqlldr userid=sh/franlk control=E:\oracle\ora92\demo\schema\sales_history\sh_sales.ctl log=E:\oracle\ora92\demo\schema\log\sales.log
注意:藍色為后來加上的,原文件是沒有的。