熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> Oracle >> 正文

DB2數據庫所支持外部文件格式

2013-11-13 15:45:42  來源: Oracle 

  在DB數據庫維護中有項工作可能經常需要處理如在數據庫投入生產使用之前往往需要在數據庫中建立大量的信息這步工作很多都是通過數據導入來完成的即將數據直接從某個文件中導入到數據庫系統中

  在數據導入之前DB數據庫系統往往會對外部文件的格式進行仔細的檢查如果外部文件的格式不符合數據庫的強制性要求數據庫就會拒絕導入數據筆者這次要給大家介紹的就是DB數據庫(DB數據導入的四大注意事項)支持哪些外部文件格式希望通過這個分析能夠幫助數據庫管理員減輕數據導入導出過程中的工作量

  一定界的ASCII文件

  定界的ASCII文件在數據庫領域內應用的是比較廣泛的基本上任何一個數據庫都支持這種格式的外部文件不過各個數據庫對於定界ASCII文件的分隔符的要求是不同的在DB數據庫中分隔符好用來標識數據元素的起始位置和結束位置一般來說DB數據庫支持如下幾種分隔符一是字符分隔符這個字符分隔符主要用來界定字符型數據類型的起始位置默認情況下在DB數據庫(提高DB數據備份與恢復的效率)中使用雙引號來作為字符分隔符這個跟其他數據庫有所不同如在Oracle數據庫中利用定界的ASCII文件導入數據的時候其會自動判斷數據是否是字符型的數據類型即不需要使用這個字符分隔符二是列分隔符即用來界定字段的起始位置大部分情況下都采用逗號(英文狀態)來作為列的分隔符不過用戶可以根據自己的需要來設置不同的列分隔符如冒號或者分號等等無論是哪一種符號來做列分隔符一般情況下都需要滿足一個前提條件即必須是英文輸入環節下的符號如果是中文狀態下的逗號或者分號則會當作普通字符來對帶三是行分隔符行分隔符是一個比較特殊的分隔符因為其所采取的操作系統平台不同其采用的行分隔符是不同的如在Windows操作系統上行分隔符就是普通的換行符而在Linux等操作系統上雖然也是換行符但是兩個操作系統上換行符是不同的如在Linux操作系統上打開Windows操作系統上建立的定界ASCII文件則格式會混亂如所有記錄在同一行中顯示好像沒有分行一樣為此在導入數據時如果這個定界文件是在Windwos操作系統上建立的而DB數據庫則是不屬在Linux操作系統上就無法正常導入導DB數據庫中而需要先對格式進行轉換將換行符轉換為Linux操作系統所能夠識別的換行符這一點數據庫管理員必須要引起足夠的重視

  根據上面的規則如下記錄就是DB數據庫所能夠支持的格式

  officeBeiJing

  注意如果在外部文件中字符串的值中包含列分隔符時(如逗號列分隔符)則這個字符串分隔符是必須的也就是說如果要導入的數據是字符型數據的話必須要使用雙引號括起來如果沒有列分隔符好的話則這個字符串分隔符號可有可無如BeiJing這個字符串如果不用雙引號括起來的話DB數據庫系統就會認為他是兩個字段而不是一個字符串此時就需要使用字符分隔符將其引用起來告訴數據庫系統這是一個字符串雖然這個定界的ASCII文件可以用來轉換大多數的數據類型如字符型數據數字型數據日期型數據等等但是如果外部文件中包含二進制數據的話則采用這個定界的ASCII文件不是很好的選擇另外就是如果文件建立的平台與DB數據庫所在的平台所采用的操作系統平台不同也不建立采用這個ASCII定界文件如果遇到這種情況的話筆者建立采用PC集成交換格式的外部文件最後需要提醒的是在定界的ASCII文件中數據行的最大長度沒有限制但是單獨列的值的最大長度不能夠超過KB則只是從ASCII文件的角度來說的在將文件導入到數據庫的時候還需要注意DB數據庫表中字段的大小能否容納這個外部文件中字段的值

  二固定記錄長度的ASCII文件

  DB數據庫還支持固定長度的ASCII外部文件格式有時候也將這種格式的文件叫做位置ASCII文件固定記錄長度位置的ASCII文件格式使用固定的字節偏移量來替代記錄分隔符以決定各個字段的界限簡單的說在這種文件格式下文件中的每一個記錄(記錄中的每一個字段)都有固定的長度如第N條記錄的起始位置就是記錄的固定長度乘以N的乘積決定所計算出來的值就是從文件起點算起的字節偏移量不僅記錄行的長度是固定的而且每條記錄中每個列的值的起始位置和終止位置也是相同的即每個字段的長度是相同的不過字段實際內容沒有達到這個固定寬度的話則往往是使用空格符來代替

  不過這個文件格式比起比起上面所講的定界的ASCII文件有很大的缺陷如制作這個文件非常的麻煩而且很容易出錯多輸入一個空格與少輸入一個空格都會導致數據庫導入錯誤如中文字符與英文字符所占的位置是不同的如果數據文件中同時包含中文與英文字符的話那麼這個固定長度就很難控制所以說筆者跟很多數據庫管理員一樣並不建立采用這個固定長度的ASCII文件格式如果一定要使用的話那麼也要采用專業的工具來轉換這個文件如在Linux操作系統中可以利用重定向符號來制作固定寬度的ASCII文件總之如果手工建立這個文件的話則出錯的可能性很大現在的DB數據庫系統雖然某些導入工具還支持這種格式的外部文件但是在數據導出的時候已經放棄了這個格式可見這種格式的文件正在退出歷史舞台

  三二進制格式的文件

  以上兩種文件有一個共同的特點即都不是以二進制形式存儲的為此他們在應用的時候會遇到一個兼容性的文件如在Linux操作系統平台上將某張表導出為ASCII文件在Windows操作系統平台上無法將這個文件導入到DB數據庫系統中主要是因為同樣是ASCII文件在不同的操作系統中(如Linux操作系統或者Windows操作系統)其存儲的格式是不同的為此通過ASCII文件是無法在不同的操作系統上進行數據互導的其實不光光是DB數據庫遇到這種困擾在Oracle數據庫也是如此

  為了解決問題在DB數據庫中涉及了二進制格式的外部文件這個二進制格式的數據文件主要有兩種分別為PC集成交換格式和工作表單格式PC集成交換格式文件主要用於在不同的操作系統平台上如LinuxWindows操作系統平台上的DB數據庫表之間進行數據傳遞即通過這種格式的二進制文件可以將數據從Linux操作系統上的數據庫中到出來然後導入導Windows操作系統上的DB數據庫中這個文件主要的特點就是其存儲的不光光是記錄的內容還存儲了表結構的定義而且因為是二進制格式的文件所以在不同操作系統上可以容易的轉移而不用擔心兼容性的問題

  另外一種二進制文件的格式是工作表單格式這也是DB數據庫產品的一種特殊的格式文件這個工作表單格式文件的用途與PC集成交換格式的文件用途不同PC集成交換格式文件主要用來解決的是不同操作系統平台上數據遷移時的兼容性問題而這個工作表單格式的文件其主要用途則是用來解決DB不同產品之間的數據遷移如在DB數據庫與Lotus產品之間的數據遷移雖然他們同樣都是二進制文件但是他們用途是不同的為此數據庫管理員需要根據不同用途來選擇合適的文件格式


From:http://tw.wingwit.com/Article/program/Oracle/201311/17263.html
    推薦文章
    Copyright © 2005-2013 電腦知識網 Computer Knowledge   All rights reserved.