<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 斷點 閱讀(351) 評論(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)
    主站蜘蛛池模板: 中文日本免费高清| 你懂的网址免费国产| 亚洲无线码一区二区三区| 精品国产亚洲AV麻豆| 亚洲国产日韩在线观频| 免费精品国产自产拍在线观看| 又黄又爽一线毛片免费观看| 色窝窝亚洲AV网在线观看| 全黄a免费一级毛片人人爱| 美女18毛片免费视频| 在线日韩日本国产亚洲| a级毛片免费在线观看| 亚洲国产香蕉碰碰人人| xxxxx免费视频| 亚洲色偷偷色噜噜狠狠99| 国产又粗又猛又爽又黄的免费视频| 美女黄色毛片免费看| 亚洲伊人成无码综合网| 免费一区二区无码东京热| 91情国产l精品国产亚洲区| 免费看美女裸露无档网站| 亚洲aⅴ无码专区在线观看春色| 免费一级黄色毛片| a级毛片免费完整视频| 亚洲欧洲另类春色校园网站| 国产国产人免费人成免费视频| j8又粗又长又硬又爽免费视频| 国产亚洲一区二区三区在线观看 | 亚洲国产精品乱码一区二区| 日韩视频在线观看免费| 亚洲影视一区二区| 国产精品免费看久久久久| 精选影视免费在线 | 亚洲导航深夜福利| 免费国产在线观看| 一级毛片在线免费观看| 伊人久久亚洲综合影院首页| 亚洲中文字幕久久精品无码APP| 国产乱子精品免费视观看片| 老外毛片免费视频播放| 亚洲经典在线观看|