隨筆 - 175  文章 - 202  trackbacks - 0
          <2010年11月>
          31123456
          78910111213
          14151617181920
          21222324252627
          2829301234
          567891011

          第一個Blog,記錄哈哈的生活

          常用鏈接

          留言簿(16)

          隨筆分類

          隨筆檔案

          文章分類

          文章檔案

          收藏夾

          Java links

          搜索

          •  

          最新評論

          閱讀排行榜

          評論排行榜

          一、簡介

                 SQL*LOADERORACLE的數據加載工具,通常用來將操作系統文件遷移到ORACLE數據庫中。SQL*LOADER是大型數據倉庫選擇使用的加載方法,因為它提供了最快速的途徑(DIRECTPARALLEL)。使用前提是必須存在目標表。

          二、SQL*LOADER使用方法

              Window系統下,SQL Loader的命令為sqlldr,在UNIX下一般為sqlldr/sqlload

          有效的關鍵字:   
          userid   --   ORACLE   用戶名/口令   
          control   --   控制文件名  
          log   --   日志文件名 
          bad   --   錯誤文件名,如果有的數據沒有被處理,將會出現在這里   
          data   --   數據文件名  
          discard   --   廢棄文件名 
          discardmax   --   允許丟棄數據的數目   (全部默認)   
          skip   --   要跳過的邏輯記錄的數目   (默認0)   
          load   --   要加載的邏輯記錄的數目   (全部默認)   
          errors   --   允許的錯誤記錄數目  (默認50)   
          rows   --   常規路徑綁定數組中或直接路徑保存數據間的行數  (默認:   常規路徑   64,   所有直接路徑)   
          bindsize   --    常規路徑綁定數組的大小,以字節計算(默認65536)   
          silent   --   運行過程中隱藏的信息   (header,feedback,errors,discards,partitions)   
          direct   --   使用直接路徑   (默認FALSE)   
          parfile   --   參數文件:包含參數說明的文件的名稱
          parallel   --   執行并行加載   (默認FALSE)   

          file -- 要從以下對象中分配區的文件
          skip_unusable_indexes -- 不允許/允許使用無用的索引或索引分區  (默認 FALSE)
          skip_index_maintenance -- 沒有維護索引, 將受到影響的索引標記為無用  (默認 FALSE)

          commit_discontinued -- 提交加載中斷時已加載的行  (默認 FALSE)
          readsize -- 讀取緩沖區的大小               (默認 1048576)
          external_table -- 使用外部表進行加載; NOT_USED, GENERATE_ONLY, EXECUTE  (默認 NOT_USED)
          columnarrayrows -- 直接路徑列數組的行數  (默認 5000)
          streamsize -- 直接路徑流緩沖區的大小 (以字節計)  (默認 256000)
          multithreading -- 在直接路徑中使用多線程
          resumable -- 啟用或禁用當前的可恢復會話  (默認 FALSE)
          resumable_name -- 有助于標識可恢復語句的文本字符串
          resumable_timeout -- RESUMABLE 的等待時間 (以秒計)  (默認 7200)
          date_cache -- 日期轉換高速緩存的大小 (以條目計)  (默認 1000)

          PLEASE NOTE: 命令行參數可以由位置或關鍵字指定。前者的例子是 'sqlload scott/tiger foo'; 后一種情況的一個示例是 'sqlldr control=foo userid=scott/tiger'.位置指定參數的時間必須早于但不可遲于由關鍵字指定的參數。例如,允許 'sqlldr scott/tiger control=foo logfile=log', 但是不允許 'sqlldr scott/tiger control=foo log', 即使參數 'log' 的位置正確。

          三、SQL*LOADER實例

          控制文件腳本實例:

          load data    --控制文件表示
          infile 'e:\aa.csv'    --有導入的數據文件名
          append into table TBL_SYNC_CORE_INSURANCE    --向表TBL_SYNC_CORE_INSURANCE中追加記錄
          fields terminated by ','  --指定用逗號分隔
          OPTIONALLY ENCLOSED BY '"'
          TRAILING NULLCOLS  
          --表的字段沒有對應值時允許為空
          *************下面是表的字段
          (
            COVERAGE_CODE,
            PRODUCT_NO,
            NAME,
            MAIN_COVERAGE_CODE,
            KIND,
            CREATOR,
            CREATED_DATE,
            MODIFIER,
            MODIFIED_DATE
          )

                備注:數據導入的方式上例中用的append,有一下幾種:insert,為缺省方式,在數據裝載開始時要求表為空;append,在表中追加新記錄;replace,刪除舊記錄,替換成新裝載的記錄   ;truncate,同replace,會用truncate語句刪除現存數據

                在命令行提示符下使用SQL*Loader命令實現數據的輸入:

                sqlldr   userid=用戶名/口令@服務名   control='e:\control.ctl'   log=e:\log.txt   bad=e:\bad.txt

                如果本地安裝了oracle服務端,可以不寫服務名;log和bad不寫,默認生成在當前目錄下。

          四、其他導入方法

                利用PLSQL   Developer:

                在單個文件不大的情況下(少于100000行),并且目的表結構已經存在的情況下-----對于excel而言肯定不會超過了,因為excel文件的最大行為65536-----可以全選數據COPY   ,然后用PLSQL   Developer工具。

                1   在PLSQL   Developer的sql   window里輸入select   *   from   test   for   update;   
                2   按F8執行;
                3   打開鎖,   再按一下加號.   鼠標點到第一列的列頭,使全列成選中狀態,然后粘貼,最后COMMIT提交即可。

          五、補充在Linux下使用 sqlldr 的注意事項

          在執行 sqlldr 前,需要進行以下步驟

          1. 設置 ORACLE_HOME 環境變量,如 export ORACLE_HOME=/usr/lib/oracle/xe/app/oracle/product/10.2.0/server
          2. 設置ORACLE編碼格式,將本地字符集和ORACLE字符集設置為一致,如export NLS_LANG="SIMPLIFIED CHINESE_CHINA.AL32UTF8"
          3. 將csv文件轉碼成相應的編碼

          然后再使用 sqlldr 進行數據導入

          posted on 2010-11-07 15:42 哈哈的日子 閱讀(4161) 評論(0)  編輯  收藏

          只有注冊用戶登錄后才能發表評論。


          網站導航:
           
          主站蜘蛛池模板: 六盘水市| 綦江县| 元谋县| 广饶县| 石屏县| 自贡市| 札达县| 钦州市| 尖扎县| 宝应县| 汤阴县| 龙陵县| 灵台县| 尤溪县| 周口市| 尼木县| 读书| 武乡县| 威远县| 兴安县| 长汀县| 琼结县| 安康市| 曲阳县| 申扎县| 德兴市| 利津县| 巴里| 依兰县| 甘南县| 洛浦县| 屏东市| 拜城县| 通山县| 融水| 花莲市| 抚远县| 西平县| 城口县| 成都市| 息烽县|