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

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

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

    小閣飛空 一池碧映垂楊路 絳云深處 聽盡瀟瀟雨
    At times , people will simply not come through for you in the way you need.Forgive them and move on.
    posts - 212,comments - 87,trackbacks - 0
    在Oracle中,LOB(Large Object,大型對象)類型的字段現在用得越來越多了。因為這種類型的字段,容量大(最多能容納4GB的數據),且一個表中可以有多個這種類型的字段,很靈活,適用于數據量非常大的業務領域(如圖象、檔案等)。而LONG、LONG RAW等類型的字段,雖然存儲容量也不小(可達2GB),但由于一個表中只能有一個這樣類型的字段的限制,現在已很少使用了。

    LOB類型分為BLOB和CLOB兩種:BLOB即二進制大型對象(Binary Large Object),適用于存貯非文本的字節流數據(如程序、圖象、影音等)。而CLOB,即字符型大型對象(Character Large Object),則與字符集相關,適于存貯文本型的數據(如歷史檔案、大部頭著作等)。

    對于一般的java應用程序,clob類型的數據用對象形式插入即可,連接方式采用Oracle Thin JDBC Driver
    注意:存取操作開始前,必須用setAutoCommit(false)取消自動提交,否則Oracle將拋出“讀取違反順序”的錯誤。

    取: ...
            con.setAutoCommit(false);
    ....
            if(rss.next())
            {
              Clob clob = rss.getClob(1);
              if(clob!=null)
       //直接轉換為String返回,也可使用getCharacterOutputStream()或getAsciiOutputStream()
       //
       String str=clob.getSubString((long) 1, (int) clob.length());
           }
          
    寫:LOB類型字段,則只能用SELECT … FOR UPDATE命令將記錄查詢出來并鎖定,然后才能修改
    import oracle.sql.CLOB;
    OracleResultSet rss=(OracleResultSet)stmt.executeQuery("select my_clob from test where id=1 for update"); 
    if(rss.next())
      {
           CLOB clob=(CLOB)rss.getClob(1);
    //content為大于4k 的String,當然也可使用流形式寫入
           clob.putString(1,content);
          .....
          OraclePreparedStatement pstmt=(OraclePreparedStatement)con.prepareStatement("update test set my_clob=?");
          pstmt.setClob(1,(Clob)clob);
            pstmt.executeUpdate();
    ...
    }


    但同樣的方法在BEA WLS 8.1SP2上取數據沒有問題,寫CLOB會有問題的,會報一種這樣的錯誤:java.lang.ClassCastException
    對此bea 是這樣解釋并解決的:
    For most extensions that Oracle provides, you can use the standard technique as described in Using Vendor Extensions to JDBC Interfaces. However, the Oracle Thin driver does not provide public interfaces for its extension methods in the following classes:

    oracle.sql.ARRAY
    oracle.sql.STRUCT
    oracle.sql.REF
    oracle.sql.BLOB
    oracle.sql.CLOB
    WebLogic Server provides its own interfaces to access the extension methods for those classes:

    weblogic.jdbc.vendor.oracle.OracleArray
    weblogic.jdbc.vendor.oracle.OracleStruct
    weblogic.jdbc.vendor.oracle.OracleRef
    weblogic.jdbc.vendor.oracle.OracleThinBlob
    weblogic.jdbc.vendor.oracle.OracleThinClob

    意思即是采用weblogic.jdbc.vendor.oracle.OracleThinClob 替代oracle.sql.CLOB

    修改后的寫CLOB字段,只用修改一句,其他不變。
    weblogic.jdbc.vendor.oracle.OracleThinClob  clob=(OracleThinClob)rss.getClob(1);
    posted on 2005-11-16 14:35 瀟瀟雨 閱讀(1095) 評論(1)  編輯  收藏 所屬分類: JAVADatabase

    FeedBack:
    # re: oracle數據庫中CLOB字段的處理問題
    2006-09-25 15:01 | 姚文杰
    呵呵,我就剛好遇到這個問題,萬分感謝你的文章
      回復  更多評論
      
    主站蜘蛛池模板: 亚洲精品无码不卡在线播放| 亚洲视频网站在线观看| 亚洲成A人片在线播放器| 1000部无遮挡拍拍拍免费视频观看| 国精无码欧精品亚洲一区| 国产成人AV免费观看| 亚洲va无码va在线va天堂| 久久99青青精品免费观看| 亚洲精品视频在线免费| 桃子视频在线观看高清免费完整| 国产成人精品日本亚洲直接| 色妞WWW精品免费视频| 国产精品无码亚洲一区二区三区| 免费大黄网站在线看| 久草免费福利在线| 18gay台湾男同亚洲男同| 在线观看av永久免费| 国产精品成人亚洲| 国产亚洲欧洲精品| 最近2019免费中文字幕视频三| 亚洲三级视频在线| 国产99视频免费精品是看6| 一级毛片在线免费播放| 亚洲情a成黄在线观看动漫尤物| 久热中文字幕在线精品免费| 亚洲风情亚Aⅴ在线发布| 久久久久亚洲精品男人的天堂| 久久一本岛在免费线观看2020| 亚洲中文字幕乱码AV波多JI| 亚洲国产成人久久综合区| 特级做A爰片毛片免费看无码| 亚洲精品无码久久毛片波多野吉衣| 在线观看免费a∨网站| 免费在线观影网站| 亚洲最大天堂无码精品区| 亚洲中文字幕久久精品无码喷水| 日本人的色道免费网站| 在线播放国产不卡免费视频| 337p日本欧洲亚洲大胆艺术| www亚洲精品少妇裸乳一区二区| 全部免费毛片在线播放|