<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    鷹翔宇空

    學習和生活

    BlogJava 首頁 新隨筆 聯系 聚合 管理
      110 Posts :: 141 Stories :: 315 Comments :: 1 Trackbacks

    轉自:http://searchdatabase.techtarget.com.cn/askexperts/190/2239190.shtml?ticket=ST-16422-ztfNySbuR6GzRSaauT6G

     

      首先,通過下表介紹ORACLE與DB2/400數據類型之間的對應關系,是一對多的關系,具體采用哪種對應關系,應具體問題具體分析。

      注意事項:

      DATE and TIME

      Oracle中的DATE含有年、月、日、時、分、秒,它和DB2/400中的DATE不相互對應,DB2/400中的DATE只有年、月、日,TIME類型含有時、分、秒,因此日期和時間類型要進行轉換,請參照下表。

    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與ORACLE中的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,代表簡體中文。

      例如:

      CREATE TABLE MYLIB/ZHONG (HANZI CHAR (30 ) CCSID 935 NOT NULL WITHDEFAULT)

    posted on 2006-03-10 16:18 TrampEagle 閱讀(1195) 評論(0)  編輯  收藏 所屬分類: 技術文摘
    主站蜘蛛池模板: 亚洲熟女一区二区三区| 又黄又爽无遮挡免费视频| 久久久久久夜精品精品免费啦| 亚洲精品永久在线观看| 国产亚洲欧美在线观看| 免费看内射乌克兰女| 在线免费观看h片| 久久精品免费全国观看国产| 免费v片在线观看| 国产精品亚洲一区二区三区久久 | 最近中文字幕mv免费高清视频8| 国产亚洲av片在线观看播放| 亚洲精品不卡视频| 亚洲欧美成人综合久久久| 日本免费中文字幕在线看| 久久精品国产亚洲综合色| 亚洲人成网站色7799| 成年女人永久免费观看片| 黄色a级片免费看| 久久精品免费一区二区喷潮| 亚洲一区二区视频在线观看| 亚洲欧洲尹人香蕉综合| 久久九九久精品国产免费直播| 最近2019免费中文字幕6| 亚洲国产夜色在线观看| 国产黄色片免费看| 看全色黄大色大片免费久久| 91亚洲国产成人久久精品网站| 色视频在线观看免费| 亚洲一区AV无码少妇电影☆| 99re在线视频免费观看| 亚洲依依成人亚洲社区| 最近免费中文字幕大全免费| 国产精品亚洲四区在线观看| 免费播放一区二区三区| 亚洲中文字幕一二三四区| 国产福利电影一区二区三区,亚洲国模精品一区 | 最近中文字幕大全中文字幕免费| 久久亚洲精品国产亚洲老地址| 99在线观看视频免费| 亚洲熟妇成人精品一区|