Oracle数据卸载和装载
一.Windos下Oracle数据卸载
1. 编辑数据卸载的BAT文件,文件名为unload.bat,内容为:
@echo off #连接数据,并执行unload.sql 的SQL语句,此时的写的为相对路径,SQL文件必须和BAT文件在同一目录中 sqlplus ods/odsods@dslr_dbcenter @xsl.sql exit
2.编辑unload.sql文件
卸载成Excel格式的脚本的如下:
set line 180
--col FLDMODEL format a12
--col FLDBRAND format a20
--col FLDDESCRIPTION format a80
set term off verify off feedback off pagesize 222
set markup html on entmap ON spool on preformat off
set pagesize 30000
set feedback off
spool 'D:unload.xls' select bill_date ||'|'||shop_no ||'|'||sum(bill_money) from dm.dm_possch_sale_region_bak where bill_date=to_number(to_char(sysdate-1,'YYYYMMDD')) group by bill_date,shop_no; spool off exit
卸载成txt、csv格式的脚本如下:
Set linesize 3000 --每行长3000 Set pagesize 0 --指定不分页 Set heading off --不输出标题行 --Set termout off --不显示终端信息 Set trimout On --截断终端显示空格 Set echo off --不显示命令本身 Set trimspool On --截断输出至日志空格 Set feedback off --不输出反馈信息 spool 'D:unload.txt' ----指定屏幕输出到相关文件,可以换成unload.csv,txt和csv都是文本格式 --需要卸载数据的SQL查询语句,字段的分隔符为“|”
select bill_date ||'|'||shop_no ||'|'||sum(bill_money) from dm.dm_possch_sale_region_bak where bill_date=to_number(to_char(sysdate-1,'YYYYMMDD')) group by bill_date,shop_no;
spool off exit
二、Windows下ORACLE数据装载
1.编写装载数据的BAT文件,文件名为load.bat,文件内容为:
#@echo off #通过sqlldr连接数据,并加载控制文件 sqlldr ods/odsods@dslr_dbcenter control=f:load.ctl puase
2.编写数据加载文件,文件名为load.ctl,文件内容为:
Load data --加载数据 infile 'F: est1.csv' --加载数据文件名称(现在是相对路径test1.txt,可以写成绝对路径) badfile a.bad --失败数据写入文件 truncate -- append 追加 truncate 清空 delete 删除 into table ODS_SAP_D_PURCHASECOST_TMP --插入操作表 FIELDS TERMINATED BY ',' --根据指定标识符隔断各字段值 OPTIONALLY ENCLOSED BY '"' 过滤掉指定的标识符,如"等 (TP, --指定插入字段及数据 ORG , SAP_VENDERID , CODE , COST , PRCTYPE , UNINT , TAX , ZDELE , DT1 , DT2 )
注意在,在导入时,需要核对清楚数据情况和导入目标表的对应情况,上面实例的目标表结构多出一个更新时间,具体的文本数据和目标表结构如下:
三、Linux下Oracle数据卸载
1.添加数据卸载程序sqluldr2_linux_10204.bin
假如将sqluldr2_linux_10204.bin放到目录/data/etltool下面,则需要将/data/etltool设置到环境变量中去,设置环境变量的方式:
- 临时生效,使用export命令声明即可,变量在关闭shell时失效,在实际试验中,此方法不能生效
gpadmin@mdwm:/data/etltool> export etltool=/data/etltool
-
永久生效,需要修改配置文件,变量永久生效。
- 修改/etc/profile文件
用VI在文件/etc/profile文件中增加变量,该变量将会对Linux下所有用户有效,并且是“永久的”。
例如:编辑/etc/profile文件,添加PATH变量
vi /etc/profile
export PATH=/data/etltool:$PATH
2. 修改用户下的/home/用户名/.bashrc
用VI在用户目录下的.bash_profile文件中增加变量,改变量仅会对当前用户有效,并且是“永久的”。
例如:编辑gpadmin用户目录(/home/gpadmin)下的.bash_profile
vi /home/gpadmin/.bash.profile
添加如下内容:export PATH=/data/etltool:$PATH
注:修改文件后要想马上生效还要运行# source /etc/profile不然只能在下次重进此用户时生效。
2.编辑卸载脚本
#如果没有sqluldr2_linux_10205.bin加入到环境变量中,则需要加上对应的文件路径/data/jack/sqluldr2_linux_10205.bin
sqluldr2_linux_10205.bin dm/dmdmdm@dbcenter query="select * from dm_possch_sale_region" field=0x7c file=/data/etl/dm_possch_sale_region.txt