利用Java代码把oracle的blob字段内容解析成XML格式的字符串.
Statement statement = conn.createStatement();
sql = " select b.fjbh,b.ws_template_id,b.multimedia from a,b_blob b where "+condition ;
ResultSet resultSet = statement.executeQuery(sql) ;
while (resultSet.next()) {
String fjbh = resultSet.getString(1);
Blob blob = null;
InputStream is = null;
String distFile = "d:\\xml\\"+fjbh+".xml";
OutputStream os = new FileOutputStream(distFile);
blob = (Blob) resultSet.getBlob(3);
is = blob.getBinaryStream();
byte[] b = new byte[1024] ;
int len = is.read(b);
String newStr = "" ;
while (len != -1) {
os.write(b, 0, len);
newStr = newStr+new String(b,"UTF-8");
len = is.read(b);
}
int idx = newStr.indexOf("</PRINTDATA>");
newStr = newStr.substring(0, idx+12);
//newStr.replaceAll("[?]", "[ ]");
System.out.println(newStr);
os.flush();
os.close();
is.close();
}
分享到:
相关推荐
本文将详细介绍如何在Oracle中实现CLOB字段到字符串类型的转换,并探讨其中的关键技术和注意事项。 #### 一、CLOB概述 1. **定义**: - `CLOB`是Oracle数据库提供的一种特殊的数据类型,用于存储大文本数据。 - ...
1. **DataExport.exe.config**:这是应用程序的配置文件,包含运行时环境的设置,如连接字符串、应用程序配置选项等。 2. **Oracle.ManagedDataAccess.dll**:这是Oracle官方提供的Managed Driver,它是一个.NET ...
总之,MyBatis结合Oracle数据库的BLOB字段提供了灵活且高效的解决方案,用于存储和检索大型二进制数据。通过正确配置实体类、映射文件和事务管理,可以实现高效、稳定的数据操作,满足大数据存储需求。在实际项目中...
Blob字段允许我们存储非结构化的数据,与普通的数值、字符串等字段不同。 3. **图片加密**:在描述中提到的“加密”可能是指BASE64编码过程,但这并不是传统意义上的加密。BASE64本质上是一种编码,而不是加密,...
大数据量,返回值虽然是CLOB,依然会报错; CLOB变量需要dbms_lob.createtemporary,临时表空间中,建立临时LOB。 大数据量,返回值虽然是CLOB,依然会报错; CLOB变量需要dbms_lob.createtemporary,临时表空间中,...
文件上传通常涉及将文件内容读取到内存,然后插入到Blob字段。下载则反之,从Blob字段读取数据并写入文件。可以使用Java的JDBC驱动或者PL/SQL过程实现这一过程。 8. **安全性与权限**: 操作LOB数据时,需要确保...
当你尝试向CLOB字段插入数据时,如果遇到“字符串过长”的错误,通常是因为你的插入操作试图将超过Oracle允许的最大限制的数据放入CLOB字段。 Oracle CLOB字段可以存储最多4GB的数据,但在某些情况下,如使用SQL...
在本文中,我们将深入探讨如何在Java环境下,利用Spring和Hibernate框架处理Oracle数据库中的LOB(Large Object)字段。LOB字段通常用于存储大体积的数据,如文本、图片或视频。在实际开发中,处理这类数据时可能会...
CLOB主要用来存储大文本数据,如长篇文章、XML文档或JSON字符串,而BLOB则用于存储大量的二进制数据,如图像、音频、视频文件或者任何非文本的大型数据。在DELPHI中,通常会使用ADO(ActiveX Data Objects)或DBX...
对于CLOB操作,通常会涉及读取文本文件或字符串。 在实际应用中,还需要注意LOB数据的存储策略、性能优化以及内存管理,例如使用临时表空间处理大型LOB数据,避免在事务中处理过多的LOB操作,以及合理设置LOB缓存...
- CLOB插入:对于CLOB,可以使用类似的方法,如DBMS_LOB.CREATETEMPORARY和DBMS_LOB.WRITETEMPORARY,但传递的是字符串数据。 ```sql DECLARE clob_var CLOB; BEGIN DBMS_LOB.CREATETEMPORARY(clob_var, TRUE)...
在Java开发中,当需要与Oracle数据库交互时,特别是涉及到XML数据的存储,XMLType是Oracle提供的一种专门用于存储XML格式数据的类型。本文将详细探讨如何使用Java的JDBC和MyBatis框架来处理Oracle中的XMLType数据。 ...
在处理CLOB数据时,如果需要将二进制数据(例如图片或PDF文件)存储到CLOB字段,我们可以先用Base64编码将二进制数据转换为字符串,然后存入CLOB;读取时再进行反向解码,恢复为原始的二进制数据。 在Java中,操作...
5. LONG: 用于存储长字符串,最大长度可达 2GB,但不支持字符串搜索,已被 BLOB、CLOB 和 NCLOB 等大对象类型逐渐取代。 6. RAW(n) 和 LONG RAW: 二进制数据类型,RAW 用于存储较小的二进制文件,最大长度为 2000 ...
Oracle NCLOB类型是用于存储大型Unicode字符数据的字段类型,如XML文档或其他长文本内容。在处理NCLOB字段时,可能会遇到读写问题,尤其是在Java应用程序中通过JDBC驱动进行操作时。以下是一些关于如何巧妙解决...
在上述代码中,`content`字段表示文档内容,可能是一个二进制文件,用BLOB类型表示;`description`字段是文档的长文本描述,用CLOB类型表示。 接下来,我们讨论如何在Hibernate中保存这些对象。通常,你需要先将...
当向CHAR字段插入的字符串长度小于指定长度时,Oracle会用空格填充剩余部分。然而,如果字符串长度超过指定长度,将会引发错误。在创建表时,CHAR类型常用于存储长度相对固定的数据,如姓名。需要注意的是,CHAR类型...
在操作CLOB字段时,需要注意不能像处理VARCHAR2那样直接拼接SQL字符串,因为这可能导致ORA-01704错误(字符串太长)。正确的方法是使用PL/SQL的变量和绑定技术,如下所示: ```sql DECLARE V_LANG CLOB := '待插入...
Oracle还有RAW和LONG RAW用于存储二进制数据,LOB(Large Object)类型用于存储大量数据,如BLOB(Binary Large OBject)用于存储图像或文件,CLOB(Character Large OBject)用于存储大文本数据,以及XML TYPE用于...
在Java的JDBC环境中,处理Oracle数据库中的CLOB(Character Large Object)字段是一项常见的任务,尤其是在存储大量文本数据时。CLOB类型用于存储超过4000个字符的字符串数据。以下是对`jdbc`处理`oracle`的`clob`...