- 浏览: 436134 次
- 性别:
- 来自: 北京
文章分类
最新评论
-
adaylee:
貌似好久没上了
用iptables 实现本地端口转发 -
adaylee:
鲫鱼?哈哈,居然Google到你了
用iptables 实现本地端口转发 -
yflxc:
com.sun.jimi.core.raster.JimiRa ...
java对图片进行等比例缩放 -
bo_hai:
等比例压缩的算法是不是可以改进呢?
java对图片进行等比例缩放 -
Mr.TianShu:
http://www.cppblog.com/deercode ...
java 遍历目录下的文件
在oracle10g中对于大字段clob的处理简化了,可以像varchar那样的setString(str)和getString("colum_name)来插入和取值了.
不需要再像9i 那样用流进写入读出了.
但是需要使用PreparedStatement ,(用Statement和话会添不了值,我测试没有通过)
处理clob的完整方法方法如下,
import java.sql.Connection; import java.sql.DriverManager; import java.sql.Statement; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; import oracle.jdbc.OracleDriver; import java.io.IOException; import java.io.BufferedReader; import java.io.FileNotFoundException; import java.io.FileReader; import java.util.Properties; public class ClobManipulationIn10g { private Connection conn = null; private String url = null; private String user = null; private String password = null; private Properties props = new Properties(); private String fileName = null; public ClobManipulationIn10g(String fileName) { this.fileName = fileName; } public static void main(String[] args) throws SQLException { ClobManipulationIn10g clobManipulationIn10g = new ClobManipulationIn10g("C://工作交流单[规].html"); DriverManager.registerDriver(new OracleDriver()); String dbUrl = "jdbc:oracle:thin:@localhost:1521:xe"; clobManipulationIn10g.url = dbUrl; clobManipulationIn10g.user = "shanxi"; clobManipulationIn10g.password = "shanxi"; clobManipulationIn10g.props.put("user", clobManipulationIn10g.user); clobManipulationIn10g.props.put("password", clobManipulationIn10g.password); clobManipulationIn10g.props.put("SetBigStringTryClob", "true"); clobManipulationIn10g.selectClob(); } private void insertClob() throws SQLException { PreparedStatement pstmt = null; PreparedStatement ps2=null; try { if ((conn == null) || conn.isClosed()) { conn = DriverManager.getConnection(this.url, this.props); } String str = this.readFile(); String sql="insert into tbs(tid,tname,tclob) values(1,'aaaaa',empty_clob())"; String sql2="update tbs set tclob=?"; pstmt = conn.prepareStatement(sql); pstmt.executeUpdate(); pstmt = conn.prepareStatement(sql2); pstmt.setString(1, str); pstmt.executeUpdate(); } catch (SQLException sqlex) { System.out.println("SQLException while connecting and inserting into " + "the database table: " + sqlex.toString()); } catch (Exception ex) { System.out.println("Exception while connecting and inserting into the" + " database table: " + ex.toString()); } finally { if (pstmt != null) { pstmt.close(); } if (conn != null) { conn.close(); } } } private void updateClob() throws SQLException { PreparedStatement pstmt = null; try { if ((conn == null) || conn.isClosed()) { conn = DriverManager.getConnection(this.url, this.props); } String str = this.readFile(); String sql = "update tbs set tname='bbbb', tclob=? where tid=1"; pstmt = conn.prepareStatement(sql); pstmt.setString(1, str); pstmt.executeUpdate(); } catch (SQLException sqlex) { System.out.println("SQLException while connecting and inserting into " + "the database table: " + sqlex.toString()); } catch (Exception ex) { System.out.println("Exception while connecting and inserting into the" + " database table: " + ex.toString()); } finally { if (pstmt != null) { pstmt.close(); } if (conn != null) { conn.close(); } } } private void selectClob() throws SQLException { PreparedStatement pstmt = null; ResultSet rset = null; try { if ((conn == null) || conn.isClosed()) { conn = DriverManager.getConnection(this.url, this.props); } String sqlCall = "SELECT * FROM tbs"; pstmt = conn.prepareStatement(sqlCall); rset = pstmt.executeQuery(); while (rset.next()) { String idval=rset.getString("tid"); String nameval=rset.getString("tname"); String clobVal = rset.getString("tclob"); System.out.println("CLOB length: " + clobVal.length()); System.out.println(idval); System.out.println(nameval); System.out.println(clobVal); } } catch (SQLException sqlex) { System.out.println("SQLException while connecting and querying the " + "database table: " + sqlex.toString()); } catch (Exception ex) { System.out.println("Exception while connecting and querying the " + "database table: " + ex.toString()); } finally { if (rset != null) { rset.close(); } if (pstmt != null) { pstmt.close(); } if (conn != null) { conn.close(); } } } private void checkTables() { Statement stmt = null; ResultSet rset = null; try { if ((conn == null) || conn.isClosed()) { conn = DriverManager.getConnection(this.url, this.props); } stmt = conn.createStatement(); rset = stmt.executeQuery(" SELECT table_name FROM user_tables " + " WHERE table_name = 'aaa' "); if (!rset.next()) { stmt.executeUpdate(" CREATE TABLE aaa(clob_col CLOB)"); } } catch (SQLException sqlEx) { System.out.println("Could not create table aaa : " + sqlEx.toString()); } finally { try { if (rset != null) { rset.close(); } if (stmt != null) { stmt.close(); } if (conn != null) { conn.close(); } } catch (SQLException ex) { System.out.println("Could not close objects in checkTables method : " + ex.toString()); } } } private String readFile() throws FileNotFoundException, IOException { BufferedReader br = new BufferedReader(new FileReader(fileName)); String nextLine = ""; StringBuffer sb = new StringBuffer(); while ((nextLine = br.readLine()) != null) { sb.append(nextLine); } String clobData = sb.toString(); return clobData; } }
发表评论
-
ORA-01461: can bind a LONG value only for insert into a LONG column
2009-10-30 14:48 4196最近不知道怎么搞得, 好好的信息发布系统时不时的出 ... -
oracle数据类型存储结构
2009-08-02 09:01 2257目标:在oracle服务中确认 ... -
oracle dump 函数
2009-08-01 18:41 5293dump函数(number类型) 笔记 dump 函数能查看 ... -
distinct
2009-05-20 15:43 206distinct这个关键字来过滤掉多余的重复记录只保留一条,但 ... -
ORACLE to_char
2009-03-17 13:19 1309ORACLE to_char的用法 ... -
使用PL/SQL Developer导入数据
2008-12-16 23:43 3138使用PL/SQL Developer工具。 在单个文件不大的情 ... -
oracle随系统启动
2008-12-03 23:49 1074from: http://space.itpub.net/15 ... -
oracle语句优化30个规则
2008-12-03 23:19 972from:http://space.itpub.net/219 ... -
数据库优化集锦
2008-12-01 19:14 1324本文首先讨论了基于第 ... -
oracle恢复被drop掉的表
2008-11-26 19:46 1585以前只知道Windows有个回收站,今天听说Oracle也有个 ... -
oracle session
2008-11-26 17:17 18561.如何查看session级的等待事件? 当我们 ... -
oracle字符集
2008-11-25 16:59 1994一、什么是oracle字符集 ... -
oracle临时表空间为何暴涨
2008-11-19 14:38 2056昨天在做测试的时候发现一个非常奇怪的问题:在程 ... -
oracle处理clob数据
2008-11-17 23:58 1370以下方法为 OracleDAOUtil中的方法。 1. 插入记 ... -
sql统计相同项个数并按名次显示
2008-11-17 00:25 6615现在有如下这样一个表: A表 ID Name time --- ... -
oracle 分页sql 语句比较
2008-11-16 18:47 3968说说oracle分页的sql语句,分排序和不排序两种。 当 ... -
oracle 几个常用语句
2008-11-12 20:27 11221、复制表结构 c ... -
解决plsql中文乱码的问题
2008-11-12 19:03 5329xp 系统, plsql 中文显示乱码。 上网查找解决办法。 ... -
oracle10 ora-12154错误的解决办法
2008-11-09 23:05 92149安装好oracle10客户端,配置好网络服务名称,用enter ... -
sql的内联和外联
2008-11-08 14:09 2724假设一堆男女在教堂,有夫妇有单身的,假设男为左表,女为右表 ...
相关推荐
- Oracle提供了强大的包`DBMS_LOB`来处理CLOB数据。 - 常用函数包括`DBMS_LOB.SUBSTR`和`DBMS_LOB.LENGTH`等。 ```sql DECLARE l_clob CLOB; l_length PLS_INTEGER; l_substring VARCHAR2(32767); BEGIN ...
3. 创建一个新的OracleClob对象,使用OracleConnection实例初始化。 4. 创建一个OracleParameter对象,设置参数名、OracleDbType.Clob类型、OracleClob对象和输入方向。 5. 将OracleParameter对象添加到参数集合中。...
Oracle数据库系统中,LOB(Large Object)字段是用来存储大量数据的类型,如图像、音频、视频或大型文本文件。在数据库操作中,LOB字段的处理...对于处理大量非结构化数据的Oracle数据库环境,这类工具是必不可少的。
在Java的持久化框架Hibernate中,BLOB和CLOB是用来处理大数据对象(Binary Large Object和Character Large Object)的。这两个类型常用于存储图像、视频、大文本等数据,因为它们可以容纳超过数据库标准列大小限制的...
例如,MySQL的`VARCHAR2`对应Oracle的`VARCHAR2`,但MySQL的`TINYINT`在Oracle中可能是`NUMBER(3)`,`BLOB`和`CLOB`在两个系统中都有,但处理方式不同。 3. **对象权限和安全模型**: MySQL的权限管理相对简单,而...
PL/SQL (Procedural Language for SQL) 是一种专门为Oracle数据库设计的过程化语言,它结合了SQL的数据处理能力与过程化的编程能力,为数据库应用程序提供了强大的支持。PL/SQL允许开发者编写复杂的数据库应用程序,...
10. **高级特性**:ODP.NET还包括对LOB(大型对象)的支持,如BFILE、CLOB、NCLOB、BLOB等;支持高级复制、物化视图、分区表等功能。 在实际开发中,使用Oracle.ManagedDataAccess.dll不仅可以简化开发流程,还能...
27.如何对CLOB行字段执行全文检索 28.如何让你的SQL运行得更快 29.如何使‘CREATE TABLE AS SELECT’能支持ORDER BY 30.删除表内重复记录的方法 31.数据库安全性策略 32.数据库的查询优化技术. 33.提高...
8. **PL/SQL与XML**:Oracle的PL/SQL编程语言提供了对XML的支持,包括XMLType变量、XML序列化和反序列化、XML函数和过程等,使得在PL/SQL中处理XML变得简单。 9. **XML Publisher**:Oracle XML Publisher是一款...
Oracle数据库处理二进制数据方面,DBUtils提供了一些用于处理BLOB和CLOB数据类型的工具类。二进制大对象(BLOB)用于存储大量的二进制数据,比如图片、视频等,而字符大对象(CLOB)用于存储大量的文本数据。DBUtils...
Oracle PL/JSON 是一个在 Oracle...总之,Oracle PL/JSON 为 Oracle 数据库提供了一套强大的 JSON 支持,使得在数据库级别处理 JSON 数据变得简单而高效,极大地扩展了 Oracle 在 Web 开发和大数据处理领域的应用能力。
INSERT 和 UPDATE 时最大可操作的字符串长度小于等于4000 个单字节,如果要插入更长的字符串,请考虑字段用 CLOB 类型,方法借用 Oracle 里自带的 DBMS_LOB 程序包。插入修改记录前一定要做进行非空和长度判断,不能...
在Oracle数据库中,XML数据可以被存储为CLOB类型,并通过多种方法进行处理。常用的XML处理函数包括`XMLType`、`XMLParse`、`XMLELEMENT`、`XMLFOREST`等。此外,Oracle还提供了强大的XPath表达式来帮助用户更方便地...
2. **游标的作用**:游标允许用户逐行处理数据,执行插入、删除、更新等操作,而不像简单查询那样只能一次性返回所有结果。 ### Oracle中的函数与过程 1. **参数传递方式**:函数可以返回值,而过程不一定要返回值...
这套组件库提供了多种控件和类,使得开发人员可以方便地在Delphi或C++ Builder应用程序中集成对Oracle数据库的操作。 ODAC的核心功能包括: 1. **高速数据访问**:ODAC组件提供了直接与Oracle数据库通信的低级接口...
ojdbc8.jar是Oracle JDBC驱动的主要部分,包含了对JDBC接口的实现,而orai18n.jar则包含了国际化的支持,处理不同语言和区域设置的相关功能。 ojdbc8.jar包含以下主要知识点: 1. **JDBC接口**:JDBC是Java API,...
Oracle数据库因其强大的性能、安全性以及可扩展性而备受赞誉,适用于处理海量数据和高并发的业务场景。 Oracle提供了多种版本以适应不同的需求,如小型数据库适合于简单应用,如Access用于不超过100人的小规模应用...
根据提供的文档内容,我们可以归纳总结出《Oracle 10...以上内容概述了《Oracle 10数据库系统教程与上机指导》一书中的主要知识点,通过对这些知识点的学习,读者能够更好地理解和掌握Oracle数据库系统的各个方面。
2. 角色与权限:Oracle采用角色和权限机制来控制用户对数据库的访问。角色是一组权限的集合,可以方便地授予或撤销一组用户的访问权限。 3. PL/SQL:Oracle的编程语言PL/SQL结合了SQL的查询能力与过程式编程语言的...