日韩黑丝制服一区视频播放|日韩欧美人妻丝袜视频在线观看|九九影院一级蜜桃|亚洲中文在线导航|青草草视频在线观看|婷婷五月色伊人网站|日本一区二区在线|国产AV一二三四区毛片|正在播放久草视频|亚洲色图精品一区

分享

[原創(chuàng)]Oracle數據庫中保存圖片等非結構化數據(.net)

 orion360doc 2011-06-26

[原創(chuàng)]Oracle數據庫中保存圖片等非結構化數據(.net)

分享
標簽: .Net  圖片  Oracle  數據庫  保存  分類: 編程技術 2007-05-14 16:09

    最近需要用Oracle數據庫保存圖片,于是進行了一下研究。其實不管是文檔、圖片、還是視頻,這些都屬于非結構化數據,保存的關鍵在轉換類型,下面進行總結。

    1.在數據庫表中建立一個LOB類型的字段,這種類型是專門用來保存圖片等非結構化數據的,Oracle和SQL Server等大型數據庫都支持這樣的類型。
    具體類型可能會有若干種,Oralcle支持BLOB、CLOB、NCLOB、BFILE,BLOB是二進制型大對象,CLOB和NCLOB都是字符型大對象,BFILE只存儲文件指針,實際的文件是存儲在文件系統(tǒng)中的。一般采用BLOB,它支持最大4G的數據。

    2.在程序中將圖片轉化成字節(jié)數組。例如:
    MemoryStream mstream = new MemoryStream();
    image.Save(mstream, System.Drawing.Imaging.ImageFormat.Jpeg);
    byte[] imageData = mstream.ToArray(); 

    3.用SQL語句進行操作,方法和普通字段類似,只是在要指定字段內容的時候采用參數,將字節(jié)數組通過參數傳入。例如:
    CREATE TABLE table(ID NUMBER(3), PHOTO BLOB)
    INSERT INTO table(ID,PHOTO) VALUES('1', :Photo)
    :PHOTO是參數,注意這是在Oracle中的寫法,在SQL Server中應該是@PHOTO。

    4.取出圖像的時候只要將object強制轉化為字節(jié)數組,再轉化為圖像即可。例如:
    MemoryStream mstream = new MemoryStream((byte[])imageData);
    Image image=Image.FromStream(mstream);

    其實對BLOB的操作也可以利用.Net的相關類庫,不過我沒用過,在此不表。

    本站是提供個人知識管理的網絡存儲空間,所有內容均由用戶發(fā)布,不代表本站觀點。請注意甄別內容中的聯(lián)系方式、誘導購買等信息,謹防詐騙。如發(fā)現有害或侵權內容,請點擊一鍵舉報。
    轉藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多