oracle中读写blob字段的问题解析建站知识
导读:1建站知识这篇文章以程序实例说明通过JDBC操纵Oracle数据库LOB类型字段的几种情况网站建设网站推广优化seo。
LOB类型分为BLOB和CLOB两种:BLOB即二进制大型对像(Binary Large Object),适用于存贮非文本的字节流数据(如程序、图像、影音等)。而CLOB,即字符型大型对像(Character Large Object),则与字符集相关,适于存贮文本型的数据(如歷史档案、大部头著作等)。 下面以程序实例说明通过JDBC操纵Oracle数据库LOB类型字段的几种情况。
先建立如下两个测试用的数据库表,Power Designer PD模型如下:
建表SQL语句为:CREATE TABLE TEST_CLOB ( ID NUMBER(3), CLOBCOL CLOB)CREATE TABLE TEST_BLOB ( ID NUMBER(3), BLOBCOL BLOB)
一、 CLOB对象的存取
1、往数据库中插入seo网站排名优化软件一个新的CLOB对像
复制代码 代码网站seo优化如下:
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 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);}
2、修改CLOB对像(是在原CLOB对像基础上进行覆盖式的修改)
复制代码 代码如下:
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 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);}
3、替换CLOB对像(将原CLOB对像清除,换成一个全新的CLOB对像)
复制代码 代码如下:
public static void clobReplace(String infile) throws Exception{/* 设定不自动提交 */boolean defaultCommit = conn.getAutoCommit();conn.setAutoCommit(false);
声明: 本文由我的SEOUC技术文章主页发布于:2023-05-22 ,文章oracle中读写blob字段的问题解析建站知识主要讲述字段,标签,oracle中读写blob字段的问题解析建站知网站建设源码以及服务器配置搭建相关技术文章。转载请保留链接: https://www.seouc.com/article/web_5228.html