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

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

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

    信念樹(shù)下
    --夢(mèng)想只是不能實(shí)現(xiàn)的,想要實(shí)現(xiàn)就要有計(jì)劃。
    posts - 5,comments - 0,trackbacks - 0

    ORACLE中的大對(duì)象: 
    LONG: 可變長(zhǎng)的字符串?dāng)?shù)據(jù),最長(zhǎng)2G,LONG具有VARCHAR2列的特性,可以存儲(chǔ)長(zhǎng)文本一個(gè)表中最多一個(gè)LONG列
    LONG RAW: 可變長(zhǎng)二進(jìn)制數(shù)據(jù),最長(zhǎng)2G
    CLOB:  字符大對(duì)象Clob 用來(lái)存儲(chǔ)單字節(jié)的字符數(shù)據(jù)
    NCLOB: 用來(lái)存儲(chǔ)多字節(jié)的字符數(shù)據(jù)
    BLOB: 用于存儲(chǔ)二進(jìn)制數(shù)據(jù)
    BFILE: 存儲(chǔ)在文件中的二進(jìn)制數(shù)據(jù),這個(gè)文件中的數(shù)據(jù)只能被只讀訪。但該文件不包含在數(shù)據(jù)庫(kù)內(nèi)。bfile字段實(shí)際的文件存儲(chǔ)在文件系統(tǒng)中,字段中存儲(chǔ)的是文件定位指針.bfile對(duì)oracle來(lái)說(shuō)是只讀的,也不參與事務(wù)性控制和數(shù)據(jù)恢復(fù).   
    CLOB,NCLOB,BLOB都是內(nèi)部的LOB(Large Object)類(lèi)型,最長(zhǎng)4G,沒(méi)有LONG只能有一列的限制。

    要保存圖片、文本文件、Word文件各自最好用哪種數(shù)據(jù)類(lèi)型?
    --BLOB最好,LONG RAW也不錯(cuò),但Long是oracle將要廢棄的類(lèi)型,因此建議用BLOB。
    對(duì)CLOB與BLOB對(duì)象的操作
        1.  查詢(GET) 

         查詢CLOB     

        //獲得數(shù)據(jù)庫(kù)連接  
        Connection con = ConnectionFactory.getConnection();  
        con.setAutoCommit(false);  
        Statement st = con.createStatement();  
        //不需要“for update”  
        ResultSet rs = st.executeQuery("select CLOBATTR from TESTCLOB where ID=1");  
        if (rs.next())  
        {  
            java.sql.Clob clob = rs.getClob("CLOBATTR");  
            Reader inStream = clob.getCharacterStream();  
            char[] c = new char[(int) clob.length()];  
            inStream.read(c);  
            //data是讀出并需要返回的數(shù)據(jù),類(lèi)型是String  
            data = new String(c);  
            inStream.close();  
        }  
        inStream.close();  
        con.commit();  
        con.close();
        
        查詢BLOB
        Connection con = ConnectionFactory.getConnection(); 
        con.setAutoCommit(false);  
        Statement st = con.createStatement();  
        //不需要“for update”  
        ResultSet rs = st.executeQuery("select BLOBATTR from TESTBLOB where ID=1");  
        if (rs.next())  
        {  
            java.sql.Blob blob = rs.getBlob("BLOBATTR");  
            InputStream inStream = blob.getBinaryStream();  
            //data是讀出并需要返回的數(shù)據(jù),類(lèi)型是byte[]  
            data = new byte[input.available()];  
            inStream.read(data);  
            inStream.close();  
        }  
        inStream.close();  
        con.commit();  
        con.close();  
     
        2.  插入(INSERT)

            
         插入CLOB
     
        //獲得數(shù)據(jù)庫(kù)連接  
        Connection con = ConnectionFactory.getConnection();  
        con.setAutoCommit(false);  
        Statement st = con.createStatement();  
        //插入一個(gè)空對(duì)象empty_clob()  
        st.executeUpdate("insert into TESTCLOB (ID, NAME, CLOBATTR) values (1, "thename", empty_clob())");  
        //鎖定數(shù)據(jù)行進(jìn)行更新,注意“for update”語(yǔ)句  
        ResultSet rs = st.executeQuery("select CLOBATTR from TESTCLOB where ID=1 for update");  
        if (rs.next())  
        {  
            //得到j(luò)ava.sql.Clob對(duì)象后強(qiáng)制轉(zhuǎn)換為oracle.sql.CLOB  
            oracle.sql.CLOB clob = (oracle.sql.CLOB) rs.getClob("CLOBATTR");  
            Writer outStream = clob.getCharacterOutputStream();  
            //data是傳入的字符串,定義:String data  
            char[] c = data.toCharArray();  
            outStream.write(c, 0, c.length);  
        }  
        outStream.flush();  
        outStream.close();  
        con.commit();  
        con.close();       
        插入BLOB 
        //獲得數(shù)據(jù)庫(kù)連接  
        Connection con = ConnectionFactory.getConnection();  
        con.setAutoCommit(false);  
        Statement st = con.createStatement();  
        //插入一個(gè)空對(duì)象empty_blob()  
        st.executeUpdate("insert into TESTBLOB (ID, NAME, BLOBATTR) values (1, "thename", empty_blob())");  
        //鎖定數(shù)據(jù)行進(jìn)行更新,注意“for update”語(yǔ)句  
        ResultSet rs = st.executeQuery("select BLOBATTR from TESTBLOB where ID=1 for update");  
        if (rs.next())  
        {  
            //得到j(luò)ava.sql.Blob對(duì)象后強(qiáng)制轉(zhuǎn)換為oracle.sql.BLOB  
            oracle.sql.BLOB blob = (oracle.sql.BLOB) rs.getBlob("BLOBATTR");  
            OutputStream outStream = blob.getBinaryOutputStream();  
            //data是傳入的byte數(shù)組,定義:byte[] data  
            outStream.write(data, 0, data.length);  
        }  
        outStream.flush();  
        outStream.close();  
        con.commit();  
        con.close();  

    posted on 2010-09-29 08:19 三角形 閱讀(2466) 評(píng)論(0)  編輯  收藏

    只有注冊(cè)用戶登錄后才能發(fā)表評(píng)論。


    網(wǎng)站導(dǎo)航:
     
    主站蜘蛛池模板: 免费a在线观看播放| 亚洲精品视频在线免费| 亚洲AV无码精品国产成人| 亚洲狠狠成人综合网| 中文字幕亚洲综合小综合在线| 亚洲三级在线观看| 四虎永久在线精品免费观看视频 | www国产亚洲精品久久久| 亚洲精品乱码久久久久久不卡| 亚洲日韩一页精品发布| 亚洲美女视频网站| 亚洲男人天堂2022| 青青青青青青久久久免费观看| 国产在线a不卡免费视频| 国产av天堂亚洲国产av天堂| 国产亚洲玖玖玖在线观看| 黄网址在线永久免费观看 | 6080午夜一级毛片免费看| 亚洲精品国产专区91在线| 免费人成大片在线观看播放电影 | 亚洲综合成人网在线观看| 色综合久久精品亚洲国产| 国产一区二区免费在线| 亚洲专区一路线二| 最新亚洲成av人免费看| 中文字幕无码不卡免费视频| 亚洲av伊人久久综合密臀性色 | 亚洲另类无码专区丝袜| 91香蕉国产线观看免费全集| 亚洲精品456播放| 花蝴蝶免费视频在线观看高清版| 麻豆国产入口在线观看免费| 美女露隐私全部免费直播| 可以免费看黄的网站| 国产精品亚洲天堂| 女人18毛片水真多免费看| 亚洲综合久久1区2区3区 | 久久精品网站免费观看| 亚洲手机中文字幕| 最近的中文字幕大全免费8| 亚洲中文字幕精品久久|