• 数据卸载和装载


    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
    • 永久生效,需要修改配置文件,变量永久生效。

    1. 修改/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
  • 相关阅读:
    redis哨兵模式
    zookeeper 日志输出到指定文件夹
    Zookeeper运维问题集锦
    应用层、传输层、网络层常用协议
    链表排序
    集线器、交换机、路由器的区别
    C链表
    virtio/pass-through
    shell脚本实例
    KVM虚拟化相关-进阶
  • 原文地址:https://www.cnblogs.com/huminxxl/p/3203154.html
Copyright © 2020-2023  润新知