熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> Java編程 >> Java核心技術 >> 正文

java語言操作Oracle數據庫中的CLOB數據類型

2013-11-23 18:49:17  來源: Java核心技術 

  字段類型blobclobnclob
  說明三種大型對象(LOB)用來保存較大的圖形文件或帶格式的文本文件如Miceosoft Word文檔以及音頻視頻等非文本文件最大長度是GBLOB有幾種類型取決於你使用的字節的類型Oracle i實實在在地將這些數據存儲在數據庫內部保存可以執行讀取存儲寫入等特殊操作
  
  我們所操作的clobtest_table中屬性是(字符型idCLOB型picstr)目前我們假設一個大的字符對象str已經包含了我們需要存入picstr字段的數據而且connection對象conn已經建立以下的例子程序也因為不想占用太多的空間所以對拋出異常沒有寫大家參考一下api doc就可以知道該拋出什麼異常了此處僅僅告訴大家如何去寫
  
  代碼
  
  
  ()對數據庫clob型執行插入操作
  *************************************************
  
  javasqlPreparedStatement pstmt = null;
  ResultSet rs = null;
  String query = ;
  
  connsetAutoCommit(false);
   query = insert into clobtest_table(idpicstr) values(?empty_clob());
  javasqlPreparedStatement pstmt = connprepareStatement(query);
  pstmtsetString();
  pstmtexecuteUpdate();
  pstmt = null
   query = select picstr from clobtest_table where id = for update;
  pstmt = conprepareStatement(query)
  rs= pstmtexecuteQuery();
  
  oraclesqlCLOB clobtt = null;
  if(rsnext()){
   clobtt = (oraclesqlCLOB)rsgetClob();
  }
  Writer wr = clobttgetCharacterOutputStream();
  wrwrite(strtmp);
  wrflush();
  wrclose();
  rsclose();
  mit();
  
  
  
  ()通過sql/plus查詢是否已經成功插入數據庫
  *************************************************
  
  PL/SQL的包DBMS_LOB來處理LOB數據察看剛才的插入是否成功使用DBMS_LOB包的getlength這個procedure來檢測是否已經將str存入到picstr字段中了
  
  SQL> select dbms_lobgetlength(picstr) from clobtest_table;
  
  
  ()對數據庫clob型執行讀取操作
  *************************************************
  
  讀取相對插入就很簡單了基本步驟和一半的取數據庫數據沒有太大的差別
  String description =
   query = select picstr from clobtest_table where id = ;
  pstmt = conprepareStatement(query);
  ResultSet result = pstmtexecuteQuery();
  if(resultnext()){
   oraclejdbcdriverOracleResultSet ors =
   (oraclejdbcdriverOracleResultSet)result;
   oraclesqlCLOB clobtmp = (oraclesqlCLOB) orsgetClob();
  
   if(clobtmp==null || clobtmplength()==){
   Systemoutprintln(======CLOB對象為空 );
   description = ;
   }else{
   description=clobtmpgetSubString((long)(int)clobtmplength());
   Systemoutprintln(======字符串形式 +description);
   }
  }
From:http://tw.wingwit.com/Article/program/Java/hx/201311/25791.html
    推薦文章
    Copyright © 2005-2013 電腦知識網 Computer Knowledge   All rights reserved.