网络编程 | 站长之家 | 网页制作 | 图形图象 | 操作系统 | 冲浪宝典 | 软件教学 | 网络办公 | 邮件系统 | 网络安全 | 认证考试 | 系统进程
Firefox | IE | Maxthon | 迅雷 | 电驴 | BitComet | FlashGet | QQ | QQ空间 | Vista | 输入法 | Ghost | Word | Excel | wps | Powerpoint
asp | .net | php | jsp | Sql | c# | Ajax | xml | Dreamweaver | FrontPages | Javascript | css | photoshop | fireworks | Flash | Cad | Discuz!
当前位置 > 网站建设学院 > 网络编程 > 数据库 > Oracle教程
Tag:注入,存储过程,分页,安全,优化,xmlhttp,fso,jmail,application,session,防盗链,stream,无组件,组件,md5,乱码,缓存,加密,验证码,算法,cookies,ubb,正则表达式,水印,索引,日志,压缩,base64,url重写,上传,控件,Web.config,JDBC,函数,内存,PDF,迁移,结构,破解,编译,配置,进程,分词,IIS,Apache,Tomcat,phpmyadmin,Gzip,触发器,socket
数据库:数据库教程,数据库技巧,Oracle教程,MySQL教程,Sybase教程,Access教程,DB2教程,数据库安全,数据库文摘
本月文章推荐
.详细讲解获得当前"SCN"的几种有效.
.关于lob字段的处理(通过modplsql.
.[Oracle 10g] 表空间更名.
.怎样查看SGA值?.
.Oracle高手必读手册!.
.一条SQL语句.
.甲骨文扩军印度.
.Oracle并行服务器(OPS)经典FAQ.
.Oracle11g的新特性-11g New Feat.
.RedHat7.1下安装Oracle8.1.7.0.1.
.用智能优化限制提高Oracle数据库.
.如何用简易方法查找Oracle版本信.
.系统从oracle版本转化为sqlserve.
.如何在Windows 2000环境中Kill掉.
.学好Oracle的六条总结.
.本地管理表空间与字典管理表空间.
.RedHat7下Oracle8i r2 v8.1.6安装.
.g数据库软件“Oracle8i”存在有安.
.oracle开发 TNS-12500的解决过程.
.怎样配置好lilo文件?.

ORACLE大型数据对象LOB几种情况的示范类

发表日期:2008-2-9



  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
上一篇:常用数据库JDBC连接写法大全 人气:1531
下一篇:block内部数据存储 人气:578
浏览全部Oracle教程的内容 Dreamweaver插件下载 网页广告代码 祝你圣诞节快乐 2009年新年快乐