java語言操作Oracle資料庫中的CLOB資料類型

來源:互聯網
上載者:User

  欄位類型:blob,clob,nclob

  說明:三種大型物件(LOB),用來儲存較大的圖形檔案或帶格式的文字檔,如

  Miceosoft Word文檔,以及音頻、視頻等非文字檔,最大長度是4GB。LOB有幾種類型,取決

  於你使用的位元組的類型,Oracle 8i實實在在地將這些資料存放區在資料庫內部儲存。可以執行

  我們所操作的clobtest_table中屬性是(字元型id,CLOB型picstr),目前我們假設一個

  大的字元對象str已經包含了我們需要存入picstr欄位的資料。而且connection對象conn已經

  建立。以下的例子程式也因為不想佔用太多的空間,所以對拋出異常沒有寫。大家參考一下

  api doc。就可以知道該拋出什麼異常了,此處僅僅告訴大家如何去寫。

  代碼:

  (1)對資料庫clob型執行插入操作

  *************************************************

  java.sql.PreparedStatement pstmt = ;
  ResultSet rs = ;
  String query = ;
  
  conn.setAutoCommit(false);
   query = insert into clobtest_table(id,picstr) values(?,empty_clob());
  java.sql.PreparedStatement pstmt = conn.prepareStatement(query);
  pstmt.setString(1,001);
  pstmt.executeUpdate();
  pstmt =
   query = select picstr from clobtest_table where id = 001 for
  pstmt = con.prepareStatement(query)
  rs= pstmt.executeQuery();
  
  oracle.sql.CLOB clobtt = ;
  if(rs.next()){
   clobtt = (oracle.sql.CLOB)rs.getClob(1);
  }
  Writer wr = clobtt.getCharacterOutputStream();
  wr.write(strtmp);
  wr.flush();
  wr.close();
  rs.close();
  con.commit();

  (2)通過sql/plus查詢是否已經成功插入資料庫

  *************************************************

  PL/SQL的包DBMS_LOB來處理LOB資料。察看剛才的插入是否成功。使用DBMS_LOB包的

  getlength這個procedure來檢測是否已經將str存入到picstr欄位中了。如:

     SQL> select dbms_lob.getlength(picstr) from clobtest_table;

  (3)對資料庫clob型執行讀取操作

  *************************************************

  讀取相對插入就很簡單了。基本步驟和一半的取資料庫資料沒有太大的差別。

  String description =
   query = select picstr from clobtest_table where id = 001;
  pstmt = con.prepareStatement(query);
  ResultSet result = pstmt.executeQuery();
  if(result.next()){
   oracle.jdbc.driver.OracleResultSet ors =
   (oracle.jdbc.driver.OracleResultSet)result;
   oracle.sql.CLOB clobtmp = (oracle.sql.CLOB) ors.getClob(1);
  
   if(clobtmp== || clobtmp.length()==0){
   System.out.println(======CLOB對象為空白 );
   description = ;
   }else{
   description=clobtmp.getSubString((long)1,(int)clobtmp.length());
   System.out.println(======字串形式 description);
   }
  }

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.