學習oracle sql loader 的使用

          一:sql loader 的特點
          oracle自己帶了很多的工具可以用來進行數據的遷移、備份和恢復等工作。但是每個工具都有自己的特點。
           比如說exp和imp可以對數據庫中的數據進行導出和導出的工作,是一種很好的數據庫備份和恢復的工具,因此主要用在數據庫的熱備份和恢復方面。有著速度快,使用簡單,快捷的優點;同時也有一些缺點,比如在不同版本數據庫之間的導出、導入的過程之中,總會出現這樣或者那樣的問題,這個也許是oracle公司自己產品的兼容性的問題吧。
           sql loader 工具卻沒有這方面的問題,它可以把一些以文本格式存放的數據順利的導入到oracle數據庫中,是一種在不同數據庫之間進行數據遷移的非常方便而且通用的工具。缺點就速度比較慢,另外對blob等類型的數據就有點麻煩了。
           
          二:sql loader 的幫助

          C:\>sqlldr

          SQL*Loader: Release 9.2.0.1.0 - Production on 星期六 10月 9 14:48:12 2004

          Copyright (c) 1982, 2002, Oracle Corporation.  All rights reserved.


          用法: SQLLDR keyword=value [,keyword=value,...]

          有效的關鍵字:

              userid -- ORACLE username/password
             control -- Control file name
                 log -- Log file name
                 bad -- Bad file name
                data -- Data file name
             discard -- Discard file name
          discardmax -- Number of discards to allow        (全部默認)
                skip -- Number of logical records to skip  (默認0)
                load -- Number of logical records to load  (全部默認)
              errors -- Number of errors to allow          (默認50)
                rows -- Number of rows in conventional path bind array or between direct p
          ath data saves
          (默認: 常規路徑 64, 所有直接路徑)
            bindsize -- Size of conventional path bind array in bytes(默認256000)
              silent -- Suppress messages during run (header,feedback,errors,discards,part
          itions)
              direct -- use direct path                    (默認FALSE)
             parfile -- parameter file: name of file that contains parameter specification
          s
            parallel -- do parallel load                   (默認FALSE)
                file -- File to allocate extents from
          skip_unusable_indexes -- disallow/allow unusable indexes or index partitions(默
          認FALSE)
          skip_index_maintenance -- do not maintain indexes, mark affected indexes as unus
          able(默認FALSE)
            readsize -- Size of Read buffer                (默認1048576)
          external_table -- use external table for load; NOT_USED, GENERATE_ONLY, EXECUTE(
          默認NOT_USED)
          columnarrayrows -- Number of rows for direct path column array(默認5000)
          streamsize -- Size of direct path stream buffer in bytes(默認256000)
          multithreading -- use multithreading in direct path
           resumable -- enable or disable resumable for current session(默認FALSE)
          resumable_name -- text string to help identify resumable statement
          resumable_timeout -- wait time (in seconds) for RESUMABLE(默認7200)
          date_cache -- size (in entries) of date conversion 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' 的位置正確。

          C:\>

          三:sql loader使用例子
          a)SQLLoader將 Excel 數據導出到 Oracle
          1.創建SQL*Loader輸入數據所需要的文件,均保存到C:\,用記事本編輯:
          控制文件:input.ctl,內容如下:
           
            load data           --1、控制文件標識
            infile 'test.txt'       --2、要輸入的數據文件名為test.txt
            append into table test    --3、向表test中追加記錄
            fields terminated by X'09'  --4、字段終止于X'09',是一個制表符(TAB)
            (id,username,password,sj)   -----定義列對應順序
           
          a、insert,為缺省方式,在數據裝載開始時要求表為空
          b、append,在表中追加新記錄
          c、replace
          ,刪除舊記錄,替換成新裝載的記錄
          d、truncate,同上
           
          在DOS窗口下使用SQL*Loader命令實現數據的輸入
           
          C:\>sqlldr userid=system/manager control=input.ctl
            默認日志文件名為:input.log
          默認壞記錄文件為:input.bad
           
          2.還有一種方法
          可以把EXCEL文件另存為CSV(逗號分隔)(*.csv),控制文件就改為用逗號分隔
          LOAD DATA
          INFILE 'd:\car.csv'
          APPEND  INTO TABLE t_car_temp
          FIELDS TERMINATED BY ","
          (phoneno,vip_car)

          b)在控制文件中直接導入數據

          1、控制文件test.ctl的內容
          -- The format for executing this file with SQL Loader is:
          -- SQLLDR control=<filename> Be sure to substitute your
          -- version of SQL LOADER and the filename for this file.
          LOAD DATA
          INFILE *
          BADFILE 'C:\Documents and Settings\Jackey\桌面\WMCOUNTRY.BAD'
          DISCARDFILE 'C:\Documents and Settings\Jackey\桌面\WMCOUNTRY.DSC'
          INSERT INTO TABLE EMCCOUNTRY
          Fields terminated by ";" Optionally enclosed by '"'
          (
            COUNTRYID NULLIF (COUNTRYID="NULL"),
            COUNTRYCODE,
            COUNTRYNAME,
            CONTINENTID NULLIF (CONTINENTID="NULL"),
            MAPID NULLIF (MAPID="NULL"),
            CREATETIME DATE "MM/DD/YYYY HH24:MI:SS" NULLIF (CREATETIME="NULL"),
            LASTMODIFIEDTIME DATE "MM/DD/YYYY HH24:MI:SS" NULLIF (LASTMODIFIEDTIME="NULL")
          )
          BEGINDATA
          1;"JP";"Japan";1;9;"09/16/2004 16:31:32";NULL
          2;"CN";"China";1;10;"09/16/2004 16:31:32";NULL
          3;"IN";"India";1;11;"09/16/2004 16:31:32";NULL
          4;"AU";"Australia";6;12;"09/16/2004 16:31:32";NULL
          5;"CA";"Canada";4;13;"09/16/2004 16:31:32";NULL
          6;"US";"United States";4;14;"09/16/2004 16:31:32";NULL
          7;"MX";"Mexico";4;15;"09/16/2004 16:31:32";NULL
          8;"GB";"United Kingdom";3;16;"09/16/2004 16:31:32";NULL
          9;"DE";"Germany";3;17;"09/16/2004 16:31:32";NULL
          10;"FR";"France";3;18;"09/16/2004 16:31:32";NULL
          11;"IT";"Italy";3;19;"09/16/2004 16:31:32";NULL
          12;"ES";"Spain";3;20;"09/16/2004 16:31:32";NULL
          13;"FI";"Finland";3;21;"09/16/2004 16:31:32";NULL
          14;"SE";"Sweden";3;22;"09/16/2004 16:31:32";NULL
          15;"IE";"Ireland";3;23;"09/16/2004 16:31:32";NULL
          16;"NL";"Netherlands";3;24;"09/16/2004 16:31:32";NULL
          17;"DK";"Denmark";3;25;"09/16/2004 16:31:32";NULL
          18;"BR";"Brazil";5;85;"09/30/2004 11:25:43";NULL
          19;"KR";"Korea, Republic of";1;88;"09/30/2004 11:25:43";NULL
          20;"NZ";"New Zealand";6;89;"09/30/2004 11:25:43";NULL
          21;"BE";"Belgium";3;79;"09/30/2004 11:25:43";NULL
          22;"AT";"Austria";3;78;"09/30/2004 11:25:43";NULL
          23;"NO";"Norway";3;82;"09/30/2004 11:25:43";NULL
          24;"LU";"Luxembourg";3;81;"09/30/2004 11:25:43";NULL
          25;"PT";"Portugal";3;83;"09/30/2004 11:25:43";NULL
          26;"GR";"Greece";3;80;"09/30/2004 11:25:43";NULL
          27;"IL";"Israel";1;86;"09/30/2004 11:25:43";NULL
          28;"CH";"Switzerland";3;84;"09/30/2004 11:25:43";NULL
          29;"A1";"Anonymous Proxy";0;0;"09/30/2004 11:25:43";NULL
          30;"A2";"Satellite Provider";0;0;"09/30/2004 11:25:43";NULL
          31;"AD";"Andorra";3;0;"09/30/2004 11:25:43";NULL
          32;"AE";"United Arab Emirates";1;0;"09/30/2004 11:25:43";NULL
          33;"AF";"Afghanistan";1;0;"09/30/2004 11:25:43";NULL
          34;"AG";"Antigua and Barbuda";7;0;"09/30/2004 11:25:43";NULL
          35;"AI";"Anguilla";7;0;"09/30/2004 11:25:43";NULL
          36;"AL";"Albania";3;0;"09/30/2004 11:25:43";NULL
          37;"AM";"Armenia";3;0;"09/30/2004 11:25:43";NULL
          38;"AN";"Netherlands Antilles";3;0;"09/30/2004 11:25:43";NULL
          39;"AO";"Angola";2;0;"09/30/2004 11:25:43";NULL
          40;"AP";"Asia/Pacific Region";2;0;"09/30/2004 11:25:43";NULL
          41;"AQ";"Antarctica";8;0;"09/30/2004 11:25:43";NULL
          42;"AR";"Argentina";5;0;"09/30/2004 11:25:43";NULL
          43;"AS";"American Samoa";6;0;"09/30/2004 11:25:43";NULL
          44;"AW";"Aruba";5;0;"09/30/2004 11:25:43";NULL
          45;"AZ";"Azerbaijan";1;0;"09/30/2004 11:25:43";NULL
          46;"BA";"Bosnia and Herzegovina";3;0;"09/30/2004 11:25:43";NULL
          47;"BB";"Barbados";5;0;"09/30/2004 11:25:43";NULL
          48;"BD";"Bangladesh";1;0;"09/30/2004 11:25:43";NULL
          49;"BF";"Burkina Faso";2;0;"09/30/2004 11:25:43";NULL
          50;"BG";"Bulgaria";3;0;"09/30/2004 11:25:43";NUL
          L
          51;"BH";"Bahrain";1;0;"09/30/2004 11:25:43";NULL
          52;"BI";"Burundi";2;0;"09/30/2004 11:25:43";NULL
          53;"BJ";"Benin";2;0;"09/30/2004 11:25:43";NULL
          54;"BM";"Bermuda";4;0;"09/30/2004 11:25:43";NULL
          55;"BN";"Brunei Darussalam";1;0;"09/30/2004 11:25:43";NULL
          56;"BO";"Bolivia";5;0;"09/30/2004 11:25:43";NULL
          57;"BS";"Bahamas";7;0;"09/30/2004 11:25:43";NULL
          58;"BT";"Bhutan";1;0;"09/30/2004 11:25:43";NULL
          59;"BV";"Bouvet Island";5;0;"09/30/2004 11:25:43";NULL
          60;"BW";"Botswana";2;0;"09/30/2004 11:25:43";NULL
          61;"BY";"Belarus";3;0;"09/30/2004 11:25:43";NULL
          2、執行導入命令
          C:\>sqlldr userid=system/manager control=test.ctl

          c)復雜格式的導入

          posted on 2005-11-16 12:05 花木 閱讀(505) 評論(0)  編輯  收藏

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


          網站導航:
           
           
          主站蜘蛛池模板: 来凤县| 高邑县| 普宁市| 繁昌县| 秭归县| 富顺县| 南城县| 扎兰屯市| 通渭县| 东明县| 九龙城区| 平阴县| 潼南县| 湟源县| 慈溪市| 宁阳县| 长顺县| 新宾| 基隆市| 肃南| 台东县| 张北县| 偏关县| 阳曲县| 安新县| 黄平县| 漯河市| 万盛区| 峡江县| 广宗县| 凭祥市| 仙居县| 交口县| 青海省| 华宁县| 武邑县| 始兴县| 高尔夫| 获嘉县| 渭南市| 军事|