- 浏览: 3502969 次
- 性别:
- 来自: 北京
文章分类
最新评论
-
wanglf1207:
EJB的确是个不错的产品,只是因为用起来有点门槛,招来太多人吐 ...
weblogic-ejb-jar.xml的元素解析 -
qwfys200:
总结的不错。
Spring Web Flow 2.0 入门 -
u011577913:
u011577913 写道也能给我发一份翻译文档? 邮件437 ...
Hazelcast 参考文档-4 -
u011577913:
也能给我发一份翻译文档?
Hazelcast 参考文档-4 -
songzj001:
DbUnit入门实战
- package test;
- import java.io.*;
- import java.util.*;
- import java.sql.*;
- /**
- * 展示JDBC存取ORACLE大型数据对象LOB几种情况的示范类
- *
- *
- * @version 1.0
- *
- */
- public class LobPros
- {
- /**
- * ORACLE驱动程序
- */
- private static final String DRIVER = "oracle.jdbc.driver.OracleDriver" ;
- /**
- * ORACLE连接用URL
- */
- private static final String URL = "jdbc:oracle:thin:@10.11.25.66:1521:wjc" ;
- /**
- * 用户名
- */
- private static final String USER = "wjc" ;
- /**
- * 密码
- */
- private static final String PASSWORD = "anyue" ;
- /**
- * 数据库连接
- */
- 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 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对象清除,换成一个全新的BLOB对象)
- *
- * @param infile - 数据文件
- * @throws java.lang.Exception
- * @roseuid 3EDA0505000C
- */
- public static void blobReplace(String infile) throws Exception
- {
- /* 设定不自动提交 */
- boolean defaultCommit = conn.getAutoCommit();
- conn.setAutoCommit(false );
- try {
- /* 清空原BLOB对象 */
- stmt.executeUpdate("UPDATE TEST_BLOB SET BLOBCOL=EMPTY_BLOB() WHERE ID='222'" );
- /* 查询此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对象读取
- *
- * @param outfile - 输出文件名
- * @throws java.lang.Exception
- * @roseuid 3EDA050B003B
- */
- public static void blobRead(String outfile) throws Exception
- {
- /* 设定不自动提交 */
- boolean defaultCommit = conn.getAutoCommit();
- conn.setAutoCommit(false );
- try {
- /* 查询BLOB对象 */
- ResultSet rs = stmt.executeQuery("SELECT BLOBCOL FROM TEST_BLOB WHERE ID='222'" );
- while (rs.next()) {
- /* 取出此BLOB对象 */
- oracle.sql.BLOB blob = (oracle.sql.BLOB)rs.getBlob("BLOBCOL" );
- /* 以二进制形式输出 */
- BufferedOutputStream out = new BufferedOutputStream( new FileOutputStream(outfile));
- BufferedInputStream in = new BufferedInputStream(blob.getBinaryStream());
- 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);
- }
- /**
- * 建立测试用表格
- * @throws Exception
- */
- public static void createTables() throws Exception {
- try {
- stmt.executeUpdate("CREATE TABLE TEST_CLOB ( ID NUMBER(3), CLOBCOL CLOB)" );
- stmt.executeUpdate("CREATE TABLE TEST_BLOB ( ID NUMBER(3), BLOBCOL BLOB)" );
- } catch (Exception ex) {
- }
- }
- /**
- * @param args - 命令行参数
- * @throws java.lang.Exception
- * @roseuid 3EDA052002AC
- */
- public static void main(String[] args) throws Exception
- {
- /* 装载驱动,建立数据库连接 */
- Class.forName(DRIVER);
- conn = DriverManager.getConnection(URL,USER,PASSWORD);
- stmt = conn.createStatement();
- /* 建立测试表格 */
- createTables();
- /* CLOB对象插入测试 */
- clobInsert("c:/clobInsert.txt" );
- clobRead("c:/clobInsert.out" );
- /* CLOB对象修改测试 */
- clobModify("c:/clobModify.txt" );
- clobRead("c:/clobModify.out" );
- /* CLOB对象替换测试 */
- clobReplace("c:/clobReplace.txt" ); </
发表评论
-
oracle复制表数据,复制表结构
2011-07-25 21:19 362021.不同用户之间的表数据复制 对于在一个数据库上的两个 ... -
删除 SQL Server 的所有已知实例
2011-04-05 18:42 2030如果提示实例已经被注册,无法安装,那么: 删除 SQL ... -
【SQL】安装 SQL SERVER MsiGetProductInfo 无法检索 Product Code 1605错误 解决方案
2011-04-05 17:10 4848重装数据库服务器上的SQL SERVER 2008 上遇到了以 ... -
Mysql Using Master/Slave Replication with ReplicationConnection
2011-03-24 15:19 1984Starting with Connector/J 3.1.7 ... -
oracle网络配置listener.ora、sqlnet.ora、tnsnames.ora
2010-12-03 12:36 33338oracle网络配置 三个配置文件 listener.ora ... -
Oracle XE的数据库创建过程
2010-12-02 22:55 4350今天安装了Oracle XE,发现并没有自动创建数据库。趁着 ... -
实现数据库TPC性能测试的开源及商业软件
2010-12-02 01:11 3120商业软件 Benchmark Factory ... -
MySQL压力测试工具mysqlslap
2010-11-07 17:13 1769MySQL从5.1.4版开始带有一个压力测试工具mys ... -
一台机器上安装多个mysqld实例
2010-11-06 16:09 2167一台机器安装多个mysqld实例 1. ps -aux | ... -
MySQL数据库双向同步
2010-08-25 20:23 40841. 主从关系的同步 master端 192.168.5 ... -
MySQL 数据库之间的同步(windows与linux)
2010-08-25 20:14 32101.导出windows mysql的test库到linux m ... -
Ubuntu Server 下开启远程连接 MySQL
2010-03-16 23:24 3106要通过远程连接MySQL,需要做两步:第一步是要创建一个可以远 ... -
DB2 在REDHAT 5下的详细安装过程 DB2 9.5 C EXPRESS
2010-03-02 10:43 4592过详细测试并且补充后发表, 括号内的为自行添加的内容. ... -
IBM DB2 Express-C 9.5.2
2010-03-02 09:44 3513或许您已经知 ... -
Oracle Database 10g Express Edition安装小结
2010-03-01 15:28 9168racle Database 10g Express Edit ... -
HA JDBC – High Availability JDBC
2010-02-27 18:46 3305Some time ago I worked on a pr ... -
数据归档将走向何方
2010-02-25 11:50 2264数据量的爆炸性增长,让我们不得不更加关心存储。这也造成 ... -
Database
2010-02-18 15:53 2316下一代数据库发展的4大趋势 趋势之一:对XML的支 ... -
免安装Oracle运行pl/sql developer
2010-02-16 20:27 2183Sql客户端中,虽然最便捷的是万能而且轻量无比的Sql Wor ... -
在debian上安装oracle 10g express
2010-02-16 18:46 4922在debian上安装oracle 10g express 若 ...
相关推荐
Oracle中的大型对象(LOB)是用于存储大量数据的特殊数据类型,包括BLOB(二进制大对象)和CLOB(字符大对象)。在Oracle数据库中,LOBs被设计用来处理超过4KB的文本、图像、音频或视频数据。本文通过Java代码示例...
《使用JDBC数据接口存取Oracle LOB(大对象)》这篇文章主要探讨了如何通过Java数据库连接(JDBC)接口来处理Oracle数据库中的大对象(LOB)数据类型,特别是BLOB和CLOB。Oracle数据库利用LOB技术有效地管理和存储非...
Oracle数据库中的LOB(Large Object)类型是用来存储大量数据的,如文本、图像、音频或视频等。LOBs分为四种类型:BLOB(Binary Large Object)用于二进制数据,CLOB(Character Large Object)用于字符数据,NCLOB...
Oracle数据库系统中,`DBMS_LOB`是一个重要的PL/SQL包,专门用于处理大型对象(LOBs,Large Object)。LOBs是Oracle提供的一种数据类型,用于存储大量数据,如文本、图像、音频或视频文件等。这个包包含了各种过程和...
标题中的“Oracle数据库大对象数据存取的两种实现方法及时间性能比较”指的是在Oracle数据库中处理大对象(LOB)数据的两种不同方法,并对比它们的性能。Oracle数据库中的大对象数据通常指的是非结构化的数据,如...
Oracle数据库中的LOB(Large OBject)是一种特殊的数据类型,用于存储大量的二进制数据或字符数据。LOB数据类型包括BLOB、CLOB、NCLOB和BFILE四种,分别用于存储二进制数据、字符数据、国家字符数据和外部文件数据...
Oracle LOB(Large OBject)是一种复杂的数据类型,用于存储大型二进制数据,如图像、音频、视频等。 Oracle LOB 详解涵盖了 LOB 的基本概念、创建、存储、维护等方面,旨在帮助开发者和数据库管理员更好地理解和...
总的来说,JDBC_oracle.zip可能包含了一个示例,展示了如何使用JDBC与Oracle数据库进行交互,包括创建连接、执行SQL、处理结果集以及管理事务等操作。这个.jmx文件可能是JMeter测试计划,用于性能测试或负载测试...
"利用Java程序实现Oracle数据库中大对象的存取" ...使用Java程序实现Oracle数据库中大对象的存取可以通过jdbc驱动程序连接Oracle数据库,并使用PreparedStatement对象执行SQL语句,实现对大对象的存储和读取。
LOB(大型对象)类型用于存储大量的文本或二进制数据。Oracle 支持四种 LOB 类型:`CLOB`、`NCLOB`、`BLOB` 和 `BFILE`。其中,`CLOB` 和 `NCLOB` 用于存储字符数据;`BLOB` 用于存储二进制数据;而 `BFILE` 是指向...
Oracle 12C JDBC驱动包是Oracle数据库与Java应用程序之间的桥梁,它允许Java开发者通过编写Java代码来访问和操作Oracle数据库。JDBC(Java Database Connectivity)是Java平台的标准API,用于连接各种数据库,包括...
* 到 Oracle 站点下载一个最新的 JDBC Driver,如果操作 LOB 类型,用 Oracle 自带的接口和类。 4. Weblogic 连接 Oracle 问题:The Network Adapter could not establish the connection 解决方法: * 可能是...
ojdbc6驱动则是为Java 6(Java SE 6)设计的,它遵循JDBC 4.0规范,除了ojdbc5驱动具有的所有功能外,还增加了新的特性,如自动重连、改进的性能和稳定性、对Unicode的增强支持,以及对XML和LOB(大型对象)处理的...
Oracle的LOB(CLOB)大字段以及(SYS_LOB$$)清理.txt
9. 其他特性:Oracle JDBC驱动还支持分布式事务、游标、LOB(大对象)操作、JMX监控、SQL警告、并发控制等高级特性。 10. 安装与配置:将Oracle JDBC驱动jar文件(如ojdbc.jar或ojdbc6.jar)添加到项目的类路径中,...
Oracle数据库系统中,LOB(Large Object)字段是用来存储大量数据的类型,如图像、音频、视频或大型文本文件。在数据库操作中,LOB字段的处理往往比常规的行数据更为复杂,因为它涉及到大块的数据读取、写入和管理。...
Oracle JDBC Driver是Oracle公司提供的用于Java应用程序与Oracle数据库交互的接口。它实现了Java Database Connectivity (JDBC) API,使得开发者可以使用Java语言来操作Oracle数据库,执行SQL语句,进行数据查询、...
Oracle JDBC驱动主要有四种类型: Thin、 Thick、JDBC-ODBC Bridge和Universal Driver,其中 Thin 驱动是最常用的一种,因为它是一种轻量级的纯Java实现,无需在客户端安装Oracle数据库客户端软件。 ojdbc8-资源....