Oracle 與 DB2 資料類型分類對應說明

來源:互聯網
上載者:User

  在網上找到一片關於oracle與DB2資料類型的比較,特記下來。

Oracle

DB2/400

Oracle資料類型

注意事項

DB2 UDB資料類型

注意事項

DATE

 

DATE
TIME
TIMESTAMP l

如果只使用MM/DD/YYY,那麼使用DATE類型。
l 如果只使用HH:MM:SS, 那麼使用TIME類型。
l 如果要使用日期和時間,則使用時間戳類型(TIMESTAMP)
l 能使用Oracle中的TO_CHAR()函數來取DATE的字串來分別和DB2/400的DATE、TIME相匹配。

VARCHAR2(n)

n<=4000

CHAR(n)
VARCHAR(n) l

若n<=32766,則使用DB2/400中的CHAR類型、VARCHAR

LONG

n<=2GB

VARCHAR(n)
CLOB(n) l

若n<=32K,則使用DB2/400中的CHAR類型、VARCHAR。
l 若32K=< n <=2GB,則使用CLOB。

ROW&
LONG ROW

n<=255

CHAR(n) FOR BIT DATA
VARCHAR(n) FOR BIT DATA
BLOB(n) l

若n<=32K, 則使用CHAR(n) FOR BIT DATA 或
VARCHAR(n) FOR BIT DATA
l 若n<=2GB, 則使用BLOB(n)

BLOB

n<=4GB

BLOB(n)

若n<=2GB, 則使用BLOB(n)

CLOB

n<=4GB

CLOB(n)

若n<=2GB, 則使用CLOB(n)

NCLOB

n<=4GB

DBCLOB(n)

若n<=2GB, 則使用DBCLOB(n/2)

NUMBER

 

SMALLINT/INTEGER/BIGINT

DECIMAL(p,s)/NUMBER(p,s)

Float(n)/ REAL/DOUBLE l

若Oracle中定義NUMBER(p) 或 NUMBER(p,s), 則使用SAMLLINT/INTEGER/BIGINT
l 若Oracle中定義NUMBER(p,s), 則使用DECIMAL(p,s)
l 若Oracle中定義NUMBER,則使用FLOAT(n)/REAL/DOUBLE

說明:
  NUMBER

  Oracle中的NUMBER類型可以對應DB2/400中的很多類型,這種對應關係要依賴於Oracle中number將用於儲存何種類型的資料,是整型還是帶有小數位的實型資料,另外還要考慮類型所佔用的儲存空間,例如:SAMLLINT佔2 byte, INTEGER佔4 byte; BIGINT佔8 byte;Oracle中的NUMBER類型所佔用的儲存空間要根據它的定義而定,例如預設精度下的NUMBER有38個數字長,佔用20 byte的空間。具體的對應關係請參照上表。
  ROW and LOB類型
  
DB2/400提供VARCHAR和CLOB與Oracel中的RAW和LONG RAW相對應。Oracle也支援大對象:BLOB、CLOB、CLOB和NCLOB, Oracle中的BLOB和CLOB可以提供4GB的空間,而DB2/400中的BLOB和CLOB只能存放2GB的資料;DB2/400中的DBCLOB與Oracle中的NCLOB 2GB相對應。Oracle 中的BFILE資料類型用於管理資料庫以外的位元據,資料庫中的表將指向資料庫外部的存放的BFILE檔案,DB2/400也提供一個類似的資料類型DATALINK相對應。
  ROWID
  
Oracle ROWIND虛擬列用於對錶中的某一列進行唯一標示,DB2/400中也有這樣的資料類型ROWID,它與Oracle中的ROWID的功能相似。DB2/400中的ROWID可以存放40 byte的資料用來唯一標示表中的每一行,它沒有ccsid屬性,這些資訊中沒有關於datafile、 block 或 row的資訊。例如:
CREATE TABLE LIBRARYNAME/ORDERS2 (ORDERNO ROWID, SHIPPED_TO VARCHAR (36) , ORDER_DATE DATE) ORDERNO的資料類型為ROWID,用於存放訂單號,每當插入一行時,系統自動產生一個值,存放進這個欄位。可以用OPERATION NAVIGATOR查看它的內容。
  Character type
  
DB2/400的CHAR、VARCHAR類型與Oracle中的VARCHAR2(n)類型相對應,但是Oracle中的VARCHAR2(n)類型僅用於存放較小的字串,這裡的n小於4000,因此在這種情況下,最好用定長的CHAR(N)類型與Oracle的VARCHAR2(n)相對應,這樣不僅可以提高效率,還可以節省儲存空間,若使用VARCHAR(n)類型最好用ALLOCATE參數,這樣可以提高資料庫的效能,它可以減少記憶體和硬碟之間的輸入/輸出操作。
要注意DB2/400中的字串中文輸入問題,要想在DB2/400上輸入中文應用這樣的SQL建立表,這裡的CCSID 935,代表簡體中文。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.