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

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

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

    斷點

    每天進步一點點!
    posts - 174, comments - 56, trackbacks - 0, articles - 21

    Oracle中Blob和Clob

    Posted on 2010-01-14 21:51 斷點 閱讀(346) 評論(0)  編輯  收藏 所屬分類: Oracle

    Blob是指二進制大對象也就是英文Binary Large Object的所寫;
    Clob是指大字符對象也就是英文Character Large Object的所寫。
    因此這兩個類型都是用來存儲大量數據而設計的,其中BLOB是用來存儲大量二進制數據的;CLOB用來存儲大量文本數據。

    在JDBC中有兩個接口對應數據庫中的BLOB和CLOB類型,java.sql.Blob和java.sql.Clob。和你平常使用數據庫一樣你可以直接通過ResultSet.getBlob()方法來獲取該接口的對象。與平時的查找唯一不同的是得到Blob或Clob的對象后,我們并沒有得到任何數據,但是我們可以這兩個接口中的方法得到數據。
    例如:
    Blob b=resultSet.getBlob(1);
    InputStream bin=b.getBinaryStream();
    Clob c=resultSet.getClob(2);
    Reader cReader=c.getCharacterStream():
     
    另外還有一種獲取方法,不使用數據流,而是使用數據塊。
    例如
    Blob b=resultSet.getBlob(1);
    byte data=b.getByte(0,b.length());
    Clob c=resultSet.getClob(2);
    String str=c.getSubString(0,c.length());
    在這里要說明一下,這個方法其實并不安全,如果你很細心的話,那很容易就能發現getByte()和getSubString()兩個方法中的第二個參數都是int類型的,而BLOB和CLOB是用來存儲大量數據的。而且Bolb.length()和Clob.length()的返回值都是long類型的,所以很不安全。


    那么有人肯定要問既然已經有VARCHAR和VARBINARY兩中類型,為什么還要再使用另外的兩種類型呢?
    原因:VARCHAR和VARBINARY兩種類型是有自己的局限性的。首先說這兩種類型的長度還是有限的不可以超過一定的限額,以VARCHAR在ORA中為例長度不可以超過4000;而LONGVARCHAR類型的一個重要缺陷就是不可以使用LIKE這樣的條件檢索。

    另外就是在數據庫中VARCHAR和VARBINARY的存取是將全部內容從全部讀取或寫入,對于100K或者說更大數據來說這樣的讀寫方式,遠不如用流進行讀寫來得更現實一些。


    posted @ 2009-05-16 19:26 斷點 閱讀(166) | 評論 (0)
    主站蜘蛛池模板: 国产精品亚洲五月天高清| 亚洲伊人tv综合网色| 亚洲老熟女五十路老熟女bbw | 日本免费xxxx| 亚洲黄色在线观看视频| 最近在线2018视频免费观看| 亚洲成av人片不卡无码| 成年人视频免费在线观看| 亚洲视频一区二区三区四区| 好爽又高潮了毛片免费下载 | 污污视频网站免费观看| 亚洲精品国产综合久久一线| 久久九九免费高清视频| 亚洲精品无码午夜福利中文字幕| 精品国产一区二区三区免费| 中文字幕亚洲综合久久2| 青娱分类视频精品免费2| 亚洲综合色婷婷在线观看| 国产v片免费播放| 老司机精品免费视频| 亚洲AV无码成人网站久久精品大 | 美女被免费喷白浆视频| 亚洲精品av无码喷奶水糖心| 亚洲日韩涩涩成人午夜私人影院| 国产在线精品观看免费观看| 亚洲四虎永久在线播放| 免费在线观看的网站| 成人免费网站视频www| 亚洲成人在线网站| 免费人成视频在线| a级毛片免费观看网站| 少妇中文字幕乱码亚洲影视| 午夜dj在线观看免费视频| 成人妇女免费播放久久久| 亚洲国产精品综合福利专区| 国产精品久久免费视频| 日韩人妻无码精品久久免费一| 亚洲午夜福利在线视频| 精品国产_亚洲人成在线高清| 欧美最猛性xxxxx免费| 久久九九免费高清视频|