zoukankan      html  css  js  c++  java
  • SQL Server 2012大数据导入Oracle的解决方案

    在实际工作中需要把SQL Server中的表导入Oracle。之前尝试过直接用SQL Server的DTS进行都没问题。但这次因为数据量在千万级所以报虚拟内存不足。最后通过SQL Server导出txt文件和Oracle sqlldr导入的方案解决。

    一.SQL Server导出txt文件

    方法1.使用DTS进行导出。

    方法2.使用BCP命令进行导出,具体可以查看园内文章:SQL Server中bcp命令的用法以及数据批量导入导出

    通过以上方法可以生成txt文件

    二.Oracle sqlldr导入txt文件

    1.创建sqlldr的.ctl文件,具体参数命令可以查看相关文章:用Oracle sqlldr导入文本文件TXT 总结  Oracle sqlldr导入数据使用默认值和提高性能的方法

    OPTIONS(skip_index_maintenance=TRUE,direct=true,BINDSIZE=20971520,READSIZE=20971520,ERRORS=-1,ROWS=500000)
    --unrecoverable
    LOAD DATA
    --CHARACTERSET AL32UTF8
    INFILE 'c:BranchCode_2017.txt' ---------数据文件,即txt文件
    Append INTO TABLE SIMSDW.TMS_BRANCHCODE_2017 -----表名
    FIELDS TERMINATED BY X'09' ------数据用制表符分割
    trailing nullcols
    ( ------表中字段
    ID
    ,Branch_plant
    ,SO_Number
    ,Trip_Number
    ,Shippment_Date DATE "yyyy-mm-dd hh24:mi:ss"
    ,Sold_to
    ,Sold_to_Name
    ,Ship_to
    ,Ship_to_Name
    ,BarCode_Info
    ,Barcode_Seg_1
    ,Barcode_Seg_2
    ,Barcode_Seg_3
    ,Barcode_Seg_4 DATE "yyyy-mm-dd hh24:mi:ss"
    ,Barcode_Seg_5
    ,Last_updated_time DATE "yyyy-mm-dd hh24:mi:ss"
    ) 

    2.运行.ctl文件导入数据,打开CMD运行如下文件

    C:/>sqlldr userid=system/manager@ serviceName control=c:xxx.ctl log=C:xxx.log

  • 相关阅读:
    sw
    ++1
    test
    为了
    发送邮件
    新建121212
    29012
    pthread_create/join函数
    recv函数学习
    socketpair用法学习
  • 原文地址:https://www.cnblogs.com/colder/p/4650844.html
Copyright © 2011-2022 走看看