- 浏览: 1098594 次
- 性别:
- 来自: 成都
文章分类
最新评论
-
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 2354一、ORA-01652无法通过128(在temp表空间中)扩展 ... -
oracle自动备份数据
2010-02-04 15:19 0一、自动备份脚本(backup.bat) @ECHO OF ... -
oracle实例内存(SGA和PGA)调整
2010-01-04 14:24 53805一、名词解释 (1)SGA:System Global Are ... -
PL/SQL集合类型
2009-11-20 13:57 5389PL/SQL集合类型是类似于高级语言数组的一种复合数据 ... -
oracle blob数据存取
2009-06-26 21:58 6089Oracle中的lob (Large Object)可 ... -
PL/SQL的异常处理/光标/数据链路/导入导出存储过程
2009-06-26 21:57 2532一、PL/SQL的异常 1.处理异常: EXCEPTIO ... -
oracle 管道化表函数(Pipelined Table)
2009-06-18 20:37 9558在实际的应用中,为了让PL/SQL 函数返回数据的多个 ... -
ORACLE批量绑定FORALL与BULK COLLECT
2009-06-18 20:36 19966FORALL与BULK COLLECT的使用方法: 1. ... -
oracle 统计/分析函数
2009-06-09 14:42 6403Oracle从8.1.6开始提供分析函数,分析函数 ... -
PL/SQL开发中动态SQL的使用与过程分页
2009-06-01 11:45 2195在Oracle数据库开发 ... -
Oracle格式化函数
2009-04-02 14:52 6284格式化函数 函数 返回类型 描述 ... -
Oracle数据导入导出imp/exp命令和grant命令
2009-04-02 12:17 15541一、数据导入导出命令 ... -
JDBC驱动类型的区别
2009-03-31 08:31 3285jdbc-odbc桥:将JDBC调用转换到ODBC调用。 ... -
Java程序使用OCI驱动连接Oracle数据库
2009-03-31 08:00 4558根据oracle的说法,ja ... -
oracle之spfile与pfile
2009-01-20 15:19 14578pfile(Initialization Paramet ...
相关推荐
本教程将介绍如何使用Java来读取和写入Oracle数据库中的CLOB字段。 首先,我们需要引入相关的Java和Oracle JDBC驱动库。在上述代码中,我们看到`import oracle.jdbc.driver.OracleDriver;`,这表示我们将使用Oracle...
### 运用Java如何存取Oracle中的CLOB类型字段 #### 概述 在数据库操作中,经常会遇到处理大量文本数据的需求,例如存储文章、新闻、文档等。Oracle数据库提供了CLOB(Character Large Object)类型来存储大容量的...
- **准备环境**:首先确保已经安装了Oracle数据库客户端和相应的驱动程序,例如JDBC驱动,以便通过编程语言(如Java、Python等)与数据库交互。 - **连接数据库**:使用相应的连接字符串、用户名和密码建立与...
### Java存储Oracle中的CLOB类型知识点详解 #### 一、CLOB类型简介及Java操作方法 CLOB(Character Large Object)是一种用于存储大量文本数据的数据类型,在Oracle数据库中被广泛使用,可以支持最大4GB的数据量。...
Oracle数据库在处理大对象(LOB)类型,如Clob(Character Large Object)和Blob(Binary Large Object)时,有时需要专门的工具来进行高效且安全的数据导出。这些字段通常存储大量的文本或二进制数据,比如长篇文档...
Java 中操作 Oracle 的 CLOB 字段精解 Java 中操作 Oracle 的 CLOB 字段是一种常见的操作,在实际开发中,我们经常需要在 Oracle 数据库中存储和读取大型文本数据,这时就需要使用 CLOB(Character Large OBject)...
CLOB操作与BLOB操作类似,但是在获取java.sql.Clob对象后需要强制转换为oracle.sql.CLOB对象,以便使用getCharacterOutputStream()方法将数据写入CLOB字段。 三、出库操作 出库操作可以使用ResultSet.getBlob()或...
为了将 SQL Server 中的 Image 类型数据导出到 Oracle 的 CLOB 字段中,我们需要使用Java 语言和 JDBC 驱动程序。下面是一个示例代码,演示如何将 SQL Server 中的 Image 类型数据导出到 Oracle 的 CLOB 字段中: ...
对于CLOB和BLOB字段,Oracle JDBC驱动提供了`oracle.jdbc.driver.OracleClob`和`oracle.jdbc.driver.OracleBlob`类,它们实现了Java的标准接口`java.sql.Clob`和`java.sql.Blob`。这两个接口提供了读取和写入大数据...
在Java中,读取Oracle数据库中的CLOB字段可以通过以下步骤实现: 1. **获取CLOB对象**: 首先,通过执行查询语句并从结果集中获取CLOB对象。示例代码中的`lookmail[6]`表示从查询结果的第7个元素(下标为6)获取...
标题 "ibatis oracle clob" 涉及到的是在Java开发中,使用iBATIS框架与Oracle数据库交互时处理CLOB(Character Large Object)类型数据的问题。CLOB是Oracle数据库用于存储大文本数据(如XML文档、长篇文章等)的...
标题中的“jdbc连接例子 Oracle CLOB转换为String java调用存储过程之输出游标”涉及到三个主要的Java数据库编程知识点:JDBC连接、Oracle数据库中的CLOB类型处理以及通过Java调用存储过程处理输出游标。 1. JDBC...
这里需要注意的是,`Clob` 类型在 Java 中表示为 `java.sql.Clob`,而在 Oracle 中则使用 `oracle.sql.CLOB`。 #### 3. 存储 CLOB 数据 接下来介绍如何通过 Hibernate 将 CLOB 数据保存到 Oracle 数据库中。 **...
Oracle slq bolb转换Base64 CLOB
综上所述,通过iBATIS操作Oracle的CLOB数据,需要对iBATIS的映射文件、类型处理器以及Oracle的CLOB特性有深入理解。在实际开发中,合理配置和使用这些机制,能够有效地管理大量文本数据,同时保持代码的简洁性和可...
"Java 调用 Oracle 含有 CLOB 参数的存储过程" Java 调用 Oracle 含有 CLOB 参数的存储过程是一种常用的数据库操作方式,下面是该过程的详细介绍: 1. 连接数据库 在 Java 中连接 Oracle 数据库需要使用 Oracle ...
2. **反射调用**:对于 `weblogic.jdbc.wrapper.Clob_oracle_sql_CLOB` 类型的对象,使用 Java 反射机制调用 `getVendorObj()` 方法,该方法返回一个 `oracle.sql.CLOB` 类型的对象。 3. **CLOB 数据读取**:无论是...
java读取oracle数据库中clob字段 把oracle数据库中字段类型为clob的字段值以字符串的形式读取出来
在 Java 中操作 Oracle 数据库中的 CLOB(Character Large Object)字段是一项常见的任务。CLOB 类型用于存储大量文本数据,如长篇文章或文档。本教程将详细介绍如何在 Java 中使用 JDBC 和 JNDI 连接访问 Oracle ...