回覆列表
  • 1 # gyesm2334

      oracle裝載表即透過sqlloader的方式匯入資料。  Oracle 的SQL*LOADER可以將外部資料載入到資料庫表中。下面是SQL*LOADER的基本特點:  1)能裝入不同資料型別檔案及多個數據檔案的資料  2)可裝入固定格式,自由定界以及可度長格式的資料  3)可以裝入二進位制,壓縮十進位制資料  4)一次可對多個表裝入資料  5)連線多個物理記錄裝到一個記錄中  6)對一單記錄分解再裝入到表中  7)可以用 數對制定列生成唯一的KEY  8)可對磁碟或 磁帶資料檔案裝入製表中  9)提供裝入錯誤報告  10)可以將檔案中的整型字串,自動轉成壓縮十進位制並裝入列表中。  1.2控制檔案  控制檔案是用一種語言寫的文字檔案,這個文字檔案能被SQL*LOADER識別。SQL*LOADER根據控制檔案可以找到需要載入的資料。並且分析和解釋這些資料。控制檔案由三個部分組成:  l 全域性選件,行,跳過的記錄數等;  l INFILE子句指定的輸入資料;  l 資料特性說明。  1.3輸入檔案  對於 SQL*Loader, 除控制檔案外就是輸入資料。SQL*Loader可從一個或多個指定的檔案中讀出資料。如果資料是在控制檔案中指定,就要在控制檔案中寫成 INFILE * 格式。當資料固定的格式(長度一樣)時且是在檔案中得到時,要用INFILE "fix n"  load data  infile "example.dat" "fix 11"  into table example  fields terminated by "," optionally enclosed by """  (col1 char(5),  col2 char(7))  example.dat:  001, cd, 0002,fghi,  00003,lmn,  1, "pqrs",  0005,uvwx,  當資料是可變格式(長度不一樣)時且是在檔案中得到時,要用INFILE "var n"。如:  load data  infile "example.dat" "var 3"  into table example  fields terminated by "," optionally enclosed by """  (col1 char(5),  col2 char(7))  example.dat:  009hello,cd,010world,im,  012my,name is,  1.4壞檔案  壞檔案包含那些被SQL*Loader拒絕的記錄。被拒絕的記錄可能是不符合要求的記錄。  壞檔案的名字由 SQL*Loader命令的BADFILE 引數來給定。  1.5日誌檔案及日誌資訊  當SQL*Loader 開始執行後,它就自動建立 日誌檔案。日誌檔案包含有載入的總結,載入中的錯誤資訊等。  控制檔案語法  控制檔案的格式如下:  OPTIONS ( { [SKIP=integer] [ LOAD = integer ]  [ERRORS = integer] [ROWS=integer]  [BINDSIZE=integer] [SILENT=(ALL|FEEDBACK|ERROR|DISCARD) ] )  LOAD[DATA]  [ { INFILE | INDDN } {file | * }  [STREAM | RECORD | FIXED length [BLOCKSIZE size]|  VARIABLE [length] ]  [ { BADFILE | BADDN } file ]  {DISCARDS | DISCARDMAX} integr ]  [ {INDDN | INFILE} . . . ]  [ APPEND | REPLACE | INSERT ]  [RECLENT integer]  [ { CONCATENATE integer |  CONTINUEIF { [THIS | NEXT] (start[: end])LAST }  Operator { "string" | X "hex" } } ]  INTO TABLE [user.]table  [APPEND | REPLACE|INSERT]  [WHEN condition [AND condition]...]  [FIELDS [delimiter] ]  (  column {  RECNUM | CONSTANT value |  SEQUENCE ( { integer | MAX |COUNT} [, increment] ) |  [POSITION ( { start [end] | * [ + integer] }  ) ]  datatype  [TERMINATED [ BY ] {WHITESPACE| [X] "character" } ]  [ [OPTIONALLY] ENCLOSE[BY] [X]"charcter"]  [NULLIF condition ]  [DEFAULTIF condotion]  }  [ ,...]  )  [INTO TABLE...]  [BEGINDATA]  1)要載入的資料檔案:  1.INFILE 和INDDN是同義詞,它們後面都是要載入的資料檔案。如果用 * 則表示資料就在控制檔案內。在INFILE 後可以跟幾個檔案。  2.STRAM 表示一次讀一個位元組的資料。新行代表新物理記錄(邏輯記錄可由幾個物理記錄組成)。  3.RECORD 使用宿主作業系統檔案及記錄管理系統。如果資料在控制檔案中則使用這種方法。  3. FIXED length 要讀的記錄長度為length位元組,  4. VARIABLE 被讀的記錄中前兩個位元組包含的長度,length 記錄可能的長度。缺傷為8k位元組。  5. BADFILE和BADDN同義。Oracle 不能載入資料到資料庫的那些記錄。  6. DISCARDFILE和DISCARDDN是同義詞。記錄沒有透過的資料。  7. DISCARDS和DISCARDMAX是同義詞。Integer 為最大放棄的檔案個數。  2)載入的方法:  1.APPEND 給表新增行。  2.INSERT 給空表增加行(如果表中有記錄則退出)。  3.REPLACE 先清空表在載入資料。  4. RECLEN 用於兩種情況,1)SQLLDR不能自動計算記錄長度,2)或使用者想看壞檔案的完整記錄時。對於後一種,Oracle只能按常規把壞記錄部分寫到錯誤的地方。如果看整條記錄,則可以將整條記錄寫到壞檔案中。  3)指定最大的記錄長度:  1. CONCATENATE 允許使用者設定一個整數,表示要組合邏輯記錄的數目。  4)建立邏輯記錄:  1.THIS 檢查當前記錄條件,如果為真則連線下一個記錄。  2.NEXT 檢查下一個記錄條件。如果為真,則連線下一個記錄到當前記錄來。  2. Start: end 表示要檢查在THIS或NEXT字串是否存在繼續串的列,以確定是否進行連線。如:continueif next(1-3)="WAG" 或continueif next(1-3)=X"0d03if"  5)指定要載入的表:  1.INTO TABLE 要加的表名。  2.WHEN 和select WHERE類似。用來檢查記錄的情況,如:when(3-5)="SSM" and (22)="*"  6)介紹並括起記錄中的欄位:  1. FIELDS給出記錄中欄位的分隔符,FIELDS格式為:  FIELDS [TERMIALED [BY] {WHITESPACE | [X] "charcter"} ]  [ [ OPTIONALLY] ENCLOSE [BY] [X]"charcter" ]  TERMINATED 讀完前一個欄位即開始讀下一個欄位直到介紹。  WHITESPACE 是指結束符是空格的意思。包括空格、Tab、換行符、換頁符及回車符。如果是要判斷但字元,可以用單引號括起,如X"1B"等。  OPTIONALLY ENCLOSED 表示資料應由特殊字元括起來。也可以括在TERMINATED字元內。使用OPTIONALLY要同時用TERMINLATED。  ENCLOSED 指兩個分界符內的資料。如果同時用 ENCLOSED和TERMINAED ,則它們的順序決定計算的順序。  7)定義列:  column 是表列名。列的取值可以是:  BECHUM 表示邏輯記錄數。第一個記錄為1,第2個記錄為2。  CONSTANT 表示賦予常數。  SEQUENCE 表示序列可以從任意序號開始,格式為:  SEQUENCE ( { integer | MAX |COUNT} [,increment]  POSITION 給出列在邏輯記錄中的位置。可以是絕對的,或相對前一列的值。格式為:  POSITION ( {start[end] | * [+integer] } )  Start 開始位置  * 表示前欄位之後立刻開始。  + 從前列開始向後條的位置數。  8)定義資料型別:  可以定義14種資料型別:  CHAR  DATE  DECIMAL EXTERNAL  DECIMAL  DOUBLE  FLOAT  FLOAT EXTERNAL  GRAPHIC EXTERNAL  INTEGER  INTEGER EXTERNAL  SMALLINT  VARCHAR  VARGRAPHIC  1.字元型別資料  CHAR[ (length)] [delimiter]  length預設為 1.  2.日期型別資料  DATE [ ( length)]["date_format" [delimiter]  使用to_date函式來限制。  3.字元格式中的十進位制  DECIMAL EXTERNAL [(length)] [delimiter]  用於常規格式的十進位制數(不是二進位制=> 一個位等於一個bit)。  4.壓縮十進位制格式資料  DECIMAL (digtial [,divcision])  5.雙精度符點二進位制  DOUBLE  6.普通符點二進位制  FLOAT  7.字元格式符點數  FLOAT EXTERNAL [ (length) ] [delimiter]  8.雙位元組字串資料  GRAPHIC [ (legth)]  9.雙位元組字串資料  GRAPHIC EXTERNAL[ (legth)]  10.常規全字二進位制整數  INTEGER  11.字元格式整數  INTEGER EXTERNAL  12.常規全字二進位制資料  SMALLINT  13.可變長度字串  VARCHAR  14.可變雙位元組字串資料  VARGRAPHIC  2.2寫控制檔案CTL  1. 各資料檔案的檔名;  2.各資料檔案格式;  3.各資料檔案裡各資料記錄欄位的屬性;  4.接受資料的ORACLE表列的屬性;  5.資料定義;  6.其它  資料檔案的要求:  資料型別的指定  CHAR 字元型  INTEGER EXTERNAL 整型  DECIMAL EXTERNAL 浮點型  3.1資料檔案的內容  可以在OS下的一個檔案;或跟在控制檔案下的具體資料。資料檔案可以是:  1、 二進位制與字元格式:LOADER可以把二進位制檔案讀(當成字元讀)列表中  2、 固定格式:記錄中的資料、資料型別、 資料長度固定。  3、 可變格式:每個記錄至少有一個可變長資料欄位,一個記錄可以是一個連續的字串。  資料段的分界(如姓名、年齡)如用“,”作欄位的 分 ;用,"’作資料  括號等  4、 LOADER可以使用多個連續欄位的物理記錄組成一個邏輯記錄,記錄檔案執行情況檔案:包括以下內容:  1、 執行日期:軟體版本號  2、 全部輸入,輸出檔名;對命令列的展示資訊,補充資訊,  3、 對每個裝入資訊報告:如表名,裝入情況;對初始裝入, 加截入或更新裝  入的選擇情況,欄資訊  4、 資料錯誤報告:錯誤碼;放棄記錄報告  5、 每個裝X報告:裝入行;裝入行數,可能跳過行數;可能拒絕行數;可能放  棄行數等  6、 統計概要:使用空間(包大小,長度);讀入記錄數,裝入記錄數,跳過記  錄數;拒絕記錄數,放棄記錄數;執行時間等。

  • 2 # 使用者4645885161158

    1、到oracle網站找到準確的建庫語句,樓上推薦的也不錯。

    2、必須將資料庫啟動到nomount狀態,命令是startup nomount。你的資料庫已經啟動到了mount或open狀態,系統自然會報已裝載(mount)了。

    3、你可以在圖形介面下使用 dbca的圖形介面一步一步很方便的。

  • 中秋節和大豐收的關聯?
  • 無,火,常,出,國,滅,沒,耕,種可以組成什麼成語?