最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

解析jdbc處理oracle的clob字段的詳解

 更新時間:2013年05月16日 09:29:35   作者:  
本篇文章是對jdbc處理oracle的clob字段進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下

import java.io.BufferedOutputStream;
import java.io.ByteArrayInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.io.Reader;
import java.sql.Clob;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;

復(fù)制代碼 代碼如下:

public class ClobUtil {

 /**
  *
  * @param insertSQL 插入sql語句 有clob字段時,值必須設(shè)置成empty_clob()函數(shù) 例:insert into ba valus(1,empty_clob())
  * @param updateSQL 帶有修改的查詢語句,并應(yīng)增加條件判斷.例:select * from BA where ba_id = '"+ba.getBA_id()+"' for update
  * @param con 數(shù)據(jù)庫鏈接
  * @param bigString 要插入的clob值
  * @param updateColumn 要插入的表字段名
  * @return
  * @throws SQLException
  */
 public static Boolean clobInsert(String insertSQL,String updateSQL,Connection con,String bigString,String updateColumn ) throws SQLException{
      // 結(jié)果集
      ResultSet rs = null;
      // 插入數(shù)據(jù)庫的sql
      String query = insertSQL;
      // 設(shè)置不自動提交
      con.setAutoCommit(false);
      // 定義預(yù)處理
      java.sql.PreparedStatement pstmt = con.prepareStatement( query);
      // 執(zhí)行插入語句
      pstmt.executeUpdate();
      //清空
      pstmt = null;
      // 執(zhí)行更改
      query = updateSQL;
         //顯示執(zhí)行帶有修改方式的select
      pstmt = con.prepareStatement(query);
      rs = pstmt.executeQuery();
      // 采用流的方式處理結(jié)果集
      if(rs.next()) 
      {
        // 得到指定的clob字段
        oracle.sql.CLOB singnaturedateClob = (oracle.sql.CLOB)rs.getClob(updateColumn); 
        // 把clob字段放到輸出流當(dāng)中
        BufferedOutputStream out = new BufferedOutputStream(singnaturedateClob.getAsciiOutputStream());
        // 判斷傳入的數(shù)據(jù)是否為空
        if(bigString!=null){
        try{
         // 把要保存的數(shù)據(jù)轉(zhuǎn)換成輸入流
         InputStream  is = (InputStream)(new   ByteArrayInputStream(bigString.getBytes())); 
      copyStream( is, out );
      out.close();
    } catch (IOException e) {
     // TODO Auto-generated catch block
     e.printStackTrace();
    }
        }
      }
      rs.close();
      con.commit();

   return true;
 }

 /**
  * 將輸入流寫入到輸出流當(dāng)中
  * @param is 輸入流
  * @param os 輸出流
  * @throws IOException
  */
 public static void copyStream( InputStream is, OutputStream os )
 throws IOException
 {
  byte[] data             = new byte[4096];
  int readed              = is.read(data);
  while (readed != -1)
  {
   os.write(data,0,readed);
   readed = is.read(data);
  }
 }

 /**
  * 通過Clob對象返回字符串
  * @param c
  * @return
  */
 public static String getClobString(Clob c) { 
        try {

            Reader reader=c.getCharacterStream();
            if (reader == null) {
                return null;
            }
            StringBuffer sb = new StringBuffer();
            char[] charbuf = new char[4096];
            for (int i = reader.read(charbuf); i > 0; i = reader.read(charbuf)) {
                sb.append(charbuf, 0, i);
            }
            return sb.toString();
        } catch (Exception e) {
            return "";
        }
    }

}

相關(guān)文章

  • Oracle中行列轉(zhuǎn)換有哪些方法

    Oracle中行列轉(zhuǎn)換有哪些方法

    這篇文章主要給大家介紹了關(guān)于Oracle中行列轉(zhuǎn)換有哪些方法的相關(guān)資料,最近在工作中遇到了涉及到數(shù)據(jù)庫行列之間相互轉(zhuǎn)換的問題,所以這里給大家總結(jié)介紹下,需要的朋友可以參考下
    2023-08-08
  • Oracle?function函數(shù)返回結(jié)果集的3種方法

    Oracle?function函數(shù)返回結(jié)果集的3種方法

    工作中常需要經(jīng)過一段復(fù)雜邏輯處理后,得出的一個結(jié)果集,所以這篇文章主要給大家介紹了關(guān)于Oracle?function函數(shù)返回結(jié)果集的3種方法,需要的朋友可以參考下
    2023-07-07
  • Oracle AS關(guān)鍵字 提示錯誤

    Oracle AS關(guān)鍵字 提示錯誤

    今天運行程序時,在Oracle中輸入SQL語句:select * from USERS as u ,程序報錯
    2011-04-04
  • Oracle 通過impdp導(dǎo)入報ORA-39002 ORA-39165錯誤的解決方案

    Oracle 通過impdp導(dǎo)入報ORA-39002 ORA-39165錯誤的解決方案

    這篇文章主要介紹了Oracle 通過impdp導(dǎo)入報ORA-39002 ORA-39165錯誤,本文給大家分享原因分析及解決方案,需要的朋友可以參考下
    2023-09-09
  • oracle 11g下載、安裝、使用圖文教程

    oracle 11g下載、安裝、使用圖文教程

    這篇文章主要介紹了oracle 11g下載、安裝、使用圖文教程,本文通過圖文并茂的形式給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-09-09
  • Oracle查看正在執(zhí)行的sql語句的方法大全

    Oracle查看正在執(zhí)行的sql語句的方法大全

    這篇文章主要介紹了Oracle查看正在執(zhí)行的sql語句的方法大全,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起來學(xué)習(xí)吧
    2024-04-04
  • Oracle 數(shù)據(jù)庫針對表主鍵列并發(fā)導(dǎo)致行級鎖簡單演示

    Oracle 數(shù)據(jù)庫針對表主鍵列并發(fā)導(dǎo)致行級鎖簡單演示

    本文簡單演示針對表主鍵并發(fā)導(dǎo)致的行級鎖,鎖的產(chǎn)生是因為并發(fā)。沒有并發(fā),就沒有鎖。并發(fā)的產(chǎn)生是因為系統(tǒng)需要,系統(tǒng)需要是因為用戶需要,感興趣的你可以參考下哈,希望可以幫助到你
    2013-03-03
  • Oracle單行子查詢返回多行結(jié)果的問題解決

    Oracle單行子查詢返回多行結(jié)果的問題解決

    這篇文章主要給大家介紹了關(guān)于Oracle中單行子查詢返回多行結(jié)果的問題解決的相關(guān)資料,文中通過實例代碼介紹的非常詳細(xì),對大家學(xué)習(xí)或者使用oracle具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2023-07-07
  • Oracle創(chuàng)建自增表分區(qū)之按月、按天自增表分區(qū)步驟詳解

    Oracle創(chuàng)建自增表分區(qū)之按月、按天自增表分區(qū)步驟詳解

    這篇文章主要給大家介紹了關(guān)于Oracle創(chuàng)建自增表分區(qū)之按月、按天自增表分區(qū)的相關(guān)資料,Oracle表對數(shù)據(jù)進(jìn)行月度分區(qū)是一種將數(shù)據(jù)分組的有效方法,此方法是將數(shù)據(jù)根據(jù)它們所屬時間段將其存儲為不同分區(qū),需要的朋友可以參考下
    2023-11-11
  • Oracle數(shù)據(jù)庫技術(shù)(37)

    Oracle數(shù)據(jù)庫技術(shù)(37)

    Oracle數(shù)據(jù)庫技術(shù)(37)...
    2007-03-03

最新評論

蓬溪县| 麟游县| 容城县| 浑源县| 米泉市| 崇左市| 沙洋县| 德兴市| 新源县| 开鲁县| 汝阳县| 军事| 古蔺县| 徐州市| 凤凰县| 临夏县| 长宁区| 嘉定区| 南康市| 开封市| 石棉县| 大足县| 常宁市| 鹰潭市| 广昌县| 调兵山市| 盐边县| 罗江县| 赣州市| 平山县| 综艺| 九龙县| 怀远县| 宕昌县| 胶南市| 扎鲁特旗| 叶城县| 宁都县| 察雅县| 海阳市| 峨眉山市|