回覆列表
-
1 # gyesm2334
-
2 # 使用者4645885161158
1、到oracle網站找到準確的建庫語句,樓上推薦的也不錯。
2、必須將資料庫啟動到nomount狀態,命令是startup nomount。你的資料庫已經啟動到了mount或open狀態,系統自然會報已裝載(mount)了。
3、你可以在圖形介面下使用 dbca的圖形介面一步一步很方便的。
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、 統計概要:使用空間(包大小,長度);讀入記錄數,裝入記錄數,跳過記 錄數;拒絕記錄數,放棄記錄數;執行時間等。