国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 數據庫 > Oracle > 正文

ORACLE大型數據對象LOB幾種情況的示范類

2024-08-29 13:41:08
字體:
來源:轉載
供稿:網友

  import java.io.*;
  import java.util.*;
  import java.sql.*;
  public class LobPRos
  {
  
  /**
  * Oracle驅動程序
  */
  private static final String DRIVER = "oracle.jdbc.driver.OracleDriver";
  
  /**
  * ORACLE連接用URL
  */
  private static final String URL = "jdbc:oracle:thin:@test2000:1521:orac";
  
  /**
  * 用戶名
  */
  private static final String USER = "user";
  
  /**
  * 密碼
  */
  private static final String PASSWord = "pswd";
  
  /**
  * 數據庫連接
  */
  private static Connection conn = null;
  
  /**
  * SQL語句對象
  */
  private static Statement stmt = null;
  
  /**
  * @roseuid 3EDA089E02BC
  */
  public LobPros()
  {
  
  }
  
  /**
  * 往數據庫中插入一個新的CLOB對象
  *
  * @param infile - 數據文件
  * @throws java.lang.Exception
  * @roseuid 3EDA04A902BC
  */
  public static void clobInsert(String infile) throws Exception
  {
  /* 設定不自動提交 */
  boolean defaultCommit = conn.getAutoCommit();
  conn.setAutoCommit(false);
  
  try {
  /* 插入一個空的CLOB對象 */
  stmt.executeUpdate("INSERT INTO TEST_CLOB VALUES ('111', EMPTY_CLOB())");
  /* 查詢此CLOB對象并鎖定 */
  ResultSet rs = stmt.executeQuery("SELECT CLOBCOL FROM TEST_CLOB WHERE ID='111' FOR UPDATE");
  while (rs.next()) {
  /* 取出此CLOB對象 */
  oracle.sql.CLOB clob = (oracle.sql.CLOB)rs.getClob("CLOBCOL");
  /* 向CLOB對象中寫入數據 */
  BufferedWriter out = new BufferedWriter(clob.getCharacterOutputStream());
  BufferedReader in = new BufferedReader(new FileReader(infile));
  int c;
  while ((c=in.read())!=-1) {
  out.write(c);
  }
  in.close();
  out.close();
  }
  /* 正式提交 */
  conn.commit();
  } catch (Exception ex) {
  /* 出錯回滾 */
  conn.rollback();
  throw ex;
  }
  
  /* 恢復原提交狀態 */
  conn.setAutoCommit(defaultCommit);
  }
  
  /**
  * 修改CLOB對象(是在原CLOB對象基礎上進行覆蓋式的修改)
  *
  * @param infile - 數據文件
  * @throws java.lang.Exception
  * @roseuid 3EDA04B60367
  */
  public static void clobModify(String infile) throws Exception
  {
  /* 設定不自動提交 */
  boolean defaultCommit = conn.getAutoCommit();
  conn.setAutoCommit(false);
  
  try {
  /* 查詢CLOB對象并鎖定 */
  ResultSet rs = stmt.executeQuery("SELECT CLOBCOL FROM TEST_CLOB WHERE ID='111' FOR UPDATE");
  while (rs.next()) {
  /* 獲取此CLOB對象 */
  oracle.sql.CLOB clob = (oracle.sql.CLOB)rs.getClob("CLOBCOL");
  /* 進行覆蓋式修改 */
  BufferedWriter out = new BufferedWriter(clob.getCharacterOutputStream());
  BufferedReader in = new BufferedReader(new FileReader(infile));
  int c;
  while ((c=in.read())!
=-1) {
  out.write(c);
  }
  in.close();
  out.close();
  }
  /* 正式提交 */
  conn.commit();
  } catch (Exception ex) {
  /* 出錯回滾 */
  conn.rollback();
  throw ex;
  }
  
  /* 恢復原提交狀態 */
  conn.setAutoCommit(defaultCommit);
  }
  
  /**
  * 替換CLOB對象(將原CLOB對象清除,換成一個全新的CLOB對象)
  *
  * @param infile - 數據文件
  * @throws java.lang.Exception
  * @roseuid 3EDA04BF01E1
  */
  public static void clobReplace(String infile) throws Exception
  {
  /* 設定不自動提交 */
  boolean defaultCommit = conn.getAutoCommit();
  conn.setAutoCommit(false);
  
  try {
  /* 清空原CLOB對象 */
  stmt.executeUpdate("UPDATE TEST_CLOB SET CLOBCOL=EMPTY_CLOB() WHERE ID='111'");
  /* 查詢CLOB對象并鎖定 */
  ResultSet rs = stmt.executeQuery("SELECT CLOBCOL FROM TEST_CLOB WHERE ID='111' FOR UPDATE");
  while (rs.next()) {
  /* 獲取此CLOB對象 */
  oracle.sql.CLOB clob = (oracle.sql.CLOB)rs.getClob("CLOBCOL");
  /* 更新數據 */
  BufferedWriter out = new BufferedWriter(clob.getCharacterOutputStream());
  BufferedReader in = new BufferedReader(new FileReader(infile));
  int c;
  while ((c=in.read())!=-1) {
  out.write(c);
  }
  in.close();
  out.close();
  }
  /* 正式提交 */
  conn.commit();
  } catch (Exception ex) {
  /* 出錯回滾 */
  conn.rollback();
  throw ex;
  }
  
  /* 恢復原提交狀態 */
  conn.setAutoCommit(defaultCommit);
  }
  
  /**
  * CLOB對象讀取
  *
  * @param outfile - 輸出文件名
  * @throws java.lang.Exception
  * @roseuid 3EDA04D80116
  */
  public static void clobRead(String outfile) throws Exception
  {
  /* 設定不自動提交 */
  boolean defaultCommit = conn.getAutoCommit();
  conn.setAutoCommit(false);
  
  try {
  /* 查詢CLOB對象 */
  ResultSet rs = stmt.executeQuery("SELECT * FROM TEST_CLOB WHERE ID='111'");
  while (rs.next()) {
  /* 獲取CLOB對象 */
  oracle.sql.CLOB clob = (oracle.sql.CLOB)rs.getClob("CLOBCOL");
  /* 以字符形式輸出 */
  BufferedReader in = new BufferedReader(clob.getCharacterStream());
  BufferedWriter out = new BufferedWriter(new FileWriter(outfile));
  int c;
  while ((c=in.read())!=-1) {
  out.write(c);
  }
  out.close();
  in.close();
  }
  } catch (Exception ex) {
  conn.rollback();
  throw ex;
  }
  
  /* 恢復原提交狀態 */
  conn.setAutoCommit(defaultCommit);
  }
  
  /**
  * 向數據庫中插入一個新的BLOB對象
  *
  * @param infile - 數據文件
  * @throws java.lang.Exception
  * @roseuid 3EDA04E300F6
  */
  public static void blobInsert(String infile) throws Exception
  {
  /* 設定不自動提交 */
  boolean defaultCommit = conn.getAutoCommit();
  conn.setAutoCommit(false);
  
  try {
  /* 插入一個空的BLOB對象 */
  stmt.executeUpdate("INSERT INTO TEST_BLOB VALUES ('222', EMPTY_BLOB())");
  /* 查詢此BLOB對象并鎖定 */
  ResultSet rs = stmt.executeQuery("SELECT BLOBCOL FROM TEST_BLOB WHERE ID='222' FOR UPDATE");
  while (rs.next()) {
  /* 取出此BLOB對象 */
  oracle.sql.BLOB blob = (oracle.sql.BLOB)rs.getBlob("BLOBCOL");
  /* 向BLOB對象中寫入數據 */
  BufferedOutputStream out = new BufferedOutputStream(blob.getBinaryOutputStream());
  BufferedInputStream in = new BufferedInputStream(new FileInputStream(infile));
  int c;
  while ((c=in.read())!
=-1) {
  out.write(c);
  }
  in.close();
  out.close();
  }
  /* 正式提交 */
  conn.commit();
  } catch (Exception ex) {
  /* 出錯回滾 */
  conn.rollback();
  throw ex;
  }
  
  /* 恢復原提交狀態 */
  conn.setAutoCommit(defaultCommit);
  }
  
  /**
  * 修改BLOB對象(是在原BLOB對象基礎上進行覆蓋式的修改)
  *
  * @param infile - 數據文件
  * @throws java.lang.Exception
  * @roseuid 3EDA04E90106
  */
  public static void blobModify(String infile) throws Exception
  {
  /* 設定不自動提交 */
  boolean defaultCommit = conn.getAutoCommit();
  conn.setAutoCommit(false);
  
  try {
  /* 查詢BLOB對象并鎖定 */
  ResultSet rs = stmt.executeQuery("SELECT BLOBCOL FROM TEST_BLOB WHERE ID='222' FOR UPDATE");
  while (rs.next()) {
  /* 取出此BLOB對象 */
  oracle.sql.BLOB blob = (oracle.sql.BLOB)rs.getBlob("BLOBCOL");
  /* 向BLOB對象中寫入數據 */
  BufferedOutputStream out = new BufferedOutputStream(blob.getBinaryOutputStream());
  BufferedInputStream in = new BufferedInp

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 屏边| 孝感市| 大荔县| 唐山市| 清丰县| 西城区| 桂东县| 新蔡县| 武宣县| 鹤山市| 大庆市| 黄冈市| 遵义市| 阿图什市| 酉阳| 乌兰县| 休宁县| 兰西县| 潼南县| 诸暨市| 余庆县| 克拉玛依市| 金坛市| 信阳市| 留坝县| 二手房| 辽阳市| 隆回县| 政和县| 霞浦县| 天镇县| 鹿泉市| 盘锦市| 浦县| 电白县| 三门县| 万源市| 西吉县| 墨玉县| 孟村| 馆陶县|