在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
注意:蓝色为后来加上的,原文件是没有的。