- 浏览: 1089235 次
- 性别:
- 来自: 成都
文章分类
最新评论
-
skyesx:
这是2PC实现,更常用的是一个柔性事务的实现,可以参考http ...
Spring分布式事务实现 -
ddbird:
这第一句就不严谨“分布式事务是指操作多个数据库之间的事务”,显 ...
Spring分布式事务实现 -
呵呵6666:
基于互联网支付系统的微服务架构分布式事务解决方案http:// ...
Spring分布式事务实现 -
小黄牛:
写得不错,交流群:472213887
Spring分布式事务实现 -
jiaoqf321456:
这明明是用的apache的压缩,给ant.jar有半毛钱关系吗 ...
使用ant.jar进行文件zip压缩
create table TEST_CLOB ( ID INTEGER not null, NAME VARCHAR2(20), CONTENT CLOB ) alter table TEST_CLOB add primary key (ID);
package com.logcd.common; import java.io.BufferedReader; import java.io.File; import java.io.FileInputStream; import java.io.InputStreamReader; import java.io.Reader; import java.io.Writer; import java.net.HttpURLConnection; import java.net.URL; import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; import org.apache.commons.io.FileUtils; import oracle.sql.CLOB; public class OracleClob { public static void main(String[] args) { Integer id = saveClobDataUseSQL("测试", getFileContentAsString( "D:/uploadDir/test.txt", true)); readClobDataUseSQL(id, new File("D:/uploadDir/test2.txt")); } /** * 保存Clob数据 * * @param name * 数据名称 * @param data * 字串数据 */ @SuppressWarnings("deprecation") public static Integer saveClobDataUseSQL(String name, String data) { Connection conn = getConnection(); Integer id = (int) (Math.random() * 100000); StringBuilder sqlBuilder = new StringBuilder(); try { conn.setAutoCommit(false); Statement stmt = conn.createStatement(); sqlBuilder.append("insert into TEST_CLOB(ID, NAME, CONTENT) "); sqlBuilder.append("values ( " + id); sqlBuilder.append(",'" + name + "'"); sqlBuilder.append(", empty_clob()) ");// 插入一个空对象empty_clob() stmt.executeUpdate(sqlBuilder.toString()); // 锁定数据行进行更新,注意“for update”语句 String sqlUpd = "select CONTENT from TEST_CLOB where ID = " + id + " for update"; ResultSet rs = stmt.executeQuery(sqlUpd); if (rs.next()) { // 得到java.sql.Clob对象后强制转换为oracle.sql.CLOB CLOB clob = (CLOB) rs.getClob("CONTENT"); Writer outStream = clob.setCharacterStream(0L); // data是传入的字符串,定义:String data char[] c = data.toCharArray(); outStream.write(c, 0, c.length); outStream.flush(); outStream.close(); conn.commit(); stmt.close(); } } catch (Exception e) { try { conn.rollback(); id = null; } catch (SQLException e1) { e1.printStackTrace(); } e.printStackTrace(); } finally { try { conn.close(); } catch (SQLException e) { e.printStackTrace(); } } return id; } /** * 读出数据并存成文件 * * @param id * @param file */ public static void readClobDataUseSQL(Integer id, File file) { Connection conn = getConnection(); try { Statement st = conn.createStatement(); String sql = "select CONTENT from TEST_CLOB where ID = " + id; ResultSet rs = st.executeQuery(sql); if (rs.next()) { CLOB clob = (CLOB) rs.getClob("CONTENT"); String result = convertClobToString(clob); System.out.println(result); FileUtils.writeStringToFile(file,result, "utf-8"); } } catch (Exception e) { e.printStackTrace(); } finally { try { conn.close(); } catch (SQLException e) { e.printStackTrace(); } } } /** * 将CLOB转换成字串 * @param clob * @return */ public static String convertClobToString(CLOB clob) { String reString = ""; try { Reader is = clob.getCharacterStream();// 得到流 BufferedReader br = new BufferedReader(is); String s = br.readLine(); StringBuffer sb = new StringBuffer(); while (s != null) { sb.append(s); sb.append("\n"); s = br.readLine(); } reString = sb.toString().trim(); } catch(Exception e) { e.printStackTrace(); } return reString; } /** * 取得数据库连接 * * @return */ public static Connection getConnection() { String driver = "oracle.jdbc.driver.OracleDriver"; String url = "jdbc:oracle:thin:@195.2.199.5:1521:orcl"; Connection conn = null; try { Class.forName(driver); conn = DriverManager.getConnection(url, "testdb", "logcd"); } catch (ClassNotFoundException e) { e.printStackTrace(); } catch (SQLException ex) { ex.printStackTrace(); } return conn; } /** * 读取文件内容 * * @param _url * @param isLocal * @return */ public static String getFileContentAsString(String _url, boolean isLocal) { StringBuilder strb = new StringBuilder(); try { InputStreamReader read = null; ; if (!isLocal) { URL url = new URL(_url); HttpURLConnection connection = (HttpURLConnection) url .openConnection(); read = new InputStreamReader(connection.getInputStream()); } else { File file = new File(_url); read = new InputStreamReader(new FileInputStream(file)); } BufferedReader br = new BufferedReader(read); char[] cbuf = new char[1024]; while (br.read(cbuf) != -1) { strb.append(cbuf); } } catch (Exception e) { e.printStackTrace(); } return strb.toString(); } }
评论
2 楼
log_cd
2010-06-30
这个是oracle包问题,我用的是ojdbc14.jar!
1 楼
shim
2010-06-29
java.sql.SQLException: 不支持的特性
at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:134)
at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:179)
at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:269)
at oracle.jdbc.dbaccess.DBError.throwUnsupportedFeatureSqlException(DBError.java:689)
at oracle.sql.CLOB.setCharacterStream(CLOB.java:1222)
at test.OracleClob.saveClobDataUseSQL(OracleClob.java:62)
at test.OracleClob.main(OracleClob.java:25)
at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:134)
at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:179)
at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:269)
at oracle.jdbc.dbaccess.DBError.throwUnsupportedFeatureSqlException(DBError.java:689)
at oracle.sql.CLOB.setCharacterStream(CLOB.java:1222)
at test.OracleClob.saveClobDataUseSQL(OracleClob.java:62)
at test.OracleClob.main(OracleClob.java:25)
发表评论
-
Oracle 如何扩展表空间
2013-09-26 14:29 0一、查看Oracle表空间的使用情况 select dbf ... -
Oracle之自定义聚合函数
2013-08-18 14:56 0一、聚合字符串 CREATE OR REPLACE FUN ... -
SQL Plus 命令及使用
2011-09-20 17:09 0一、登录到数据库 1.直接敲sqlplus并回车就是启动SQ ... -
Oracle数据字典/字段注释/分布式事务故障
2011-03-16 21:55 0一、Java 获取表的属性可以通过ResultSetMetaD ... -
Oracle中常用SQL
2010-05-28 12:49 01、求出本星期第一天和第七天的日期 select tru ... -
Oracle Errors收集
2010-05-23 23:21 2287一、ORA-01652无法通过128(在temp表空间中)扩展 ... -
oracle自动备份数据
2010-02-04 15:19 0一、自动备份脚本(backup.bat) @ECHO OF ... -
oracle实例内存(SGA和PGA)调整
2010-01-04 14:24 53710一、名词解释 (1)SGA:System Global Are ... -
PL/SQL集合类型
2009-11-20 13:57 5319PL/SQL集合类型是类似于高级语言数组的一种复合数据 ... -
oracle blob数据存取
2009-06-26 21:58 6036Oracle中的lob (Large Object)可 ... -
PL/SQL的异常处理/光标/数据链路/导入导出存储过程
2009-06-26 21:57 2474一、PL/SQL的异常 1.处理异常: EXCEPTIO ... -
oracle 管道化表函数(Pipelined Table)
2009-06-18 20:37 9492在实际的应用中,为了让PL/SQL 函数返回数据的多个 ... -
ORACLE批量绑定FORALL与BULK COLLECT
2009-06-18 20:36 19899FORALL与BULK COLLECT的使用方法: 1. ... -
oracle 统计/分析函数
2009-06-09 14:42 6313Oracle从8.1.6开始提供分析函数,分析函数 ... -
PL/SQL开发中动态SQL的使用与过程分页
2009-06-01 11:45 2125在Oracle数据库开发 ... -
Oracle格式化函数
2009-04-02 14:52 6243格式化函数 函数 返回类型 描述 ... -
Oracle数据导入导出imp/exp命令和grant命令
2009-04-02 12:17 15457一、数据导入导出命令 ... -
JDBC驱动类型的区别
2009-03-31 08:31 3228jdbc-odbc桥:将JDBC调用转换到ODBC调用。 ... -
Java程序使用OCI驱动连接Oracle数据库
2009-03-31 08:00 4515根据oracle的说法,ja ... -
oracle之spfile与pfile
2009-01-20 15:19 14528pfile(Initialization Paramet ...
相关推荐
java操作oracle clob,基础教程,教你clob在java中的用法,简单易学。
java操作oracle clob,基础教程,教你clob在java中的用法,简单易学。
简单写的一个小工具,把图片存入oracle中,按clob和blob两种方式存储,并读取图片
Oracle导出Clob,Blob等大字段工具,自己写的工具,方便大家下载使用
运用Java如何存取Oracle中的CLOB类型字段
网络上很多关于JAVA对Oracle中BLOB、CLOB类型字段的操作说明,有的不够全面,有的不够准确。
完整通过JAVA读写ORACLE中CLOB、BLOB字段的方法,提供数据库连接池的方法
sql server中的image类型的数据导出到oracle的clob字段中
java读取oracle数据库中clob字段 把oracle数据库中字段类型为clob的字段值以字符串的形式读取出来
java操作oracle clob,基础教程,教你clob在java中的用法,简单易学。
Oracle slq bolb转换Base64 CLOB
关于Oracle的 Clob数据类型在Hibernate中的应用小结
weblogic下转换oracle 的clob类型经常报转型错误,本例子通过反射解决weblogic.jdbc.wrapper.Clob_oracle_sql_CLOB转型成oracle.sql.CLOB问题
java调用oracle含有clob参数的存储过程
NULL 博文链接:https://vernonchen163.iteye.com/blog/1902788
oracle中的Blob和Clob区别,希望对大家学习有帮助呵
Oracle,Clob,Blob数据操作例子
oracle中使用jdbc读写clob字段,很多细节介绍,内容全面。
oracleoracleoracleoracleoracleoracleoracleoracleoracleoracleoracleoracleoracleoracleoracleoracle