//取CLOB中的内容(不包含图片)
public String query(String strQuery) throws SQLException{
if (con==null || con.isClosed()) {
pool = ConnectionPool.getInstance();
con = pool.getConnection();
}
Statement st = con.createStatement();
ResultSet rs = st.executeQuery(strQuery);
String line = "" ;
String content = "";
while (rs.next()){
Clob clob = rs.getClob("content"); //和提取一般对象一样
// InputStream is = rs.getAsciiStream(1); //特殊的,对于与得到Clob的流
// BufferedReader br = new BufferedReader(new InputStreamReader(is));
//
// while(null != (line = br.readLine())){
// //System.out.println(line);
// content += line;
// }
// is.close();
long longLen = clob.length();
content = clob.getSubString(1L, (int) longLen);
}
rs.close();
st.close();
con.close();
return content;
}
//写入CLOB
public Boolean update(DynaActionForm listForm) throws SQLException, IOException {
// TODO 自动生成方法存根
String content = (String) listForm.get("content");
try {
if (con==null || con.isClosed()) {
pool = ConnectionPool.getInstance();
con = pool.getConnection();
}
con.setAutoCommit(false);
//插入一个空CLOB
//String insertSql = "insert into Client_PUBBLOB(id,content) values('1',empty_clob())";
//查询插入的空CLOB
String selectSql = "select content from Client_PUBBLOB where id = '1' for update";
//PreparedStatement stmt = con.prepareStatement(insertSql);
//stmt.executeUpdate();
//stmt.close();
//lock this line
PreparedStatement pstmt = con.prepareStatement(selectSql);
String emptyClobSql="update Client_PubBLOB set content=empty_clob() where id=1";
PreparedStatement pstmt2=con.prepareStatement(emptyClobSql);
pstmt2.executeUpdate();
pstmt2.close();
ResultSet rs = pstmt.executeQuery();
if(rs.next()){
oracle.sql.CLOB clob = (oracle.sql.CLOB)rs.getClob(1);
//System.out.println("要修改的content:" + content);
//为CLOB写信息
String sql1="update Client_PubBLOB set content=? where id=1";
clob.putChars(1, content.toCharArray());
// String s = clob.getSubString((long)1,(int)clob.length()-1);
// System.out.println("当前的clob内容是: " + s);
pstmt=con.prepareStatement(sql1);
pstmt.setClob(1,clob);
pstmt.executeUpdate();
// oracle.sql.CLOB clob2 = (oracle.sql.CLOB)rs.getClob(1);
// String s = clob.getSubString((long)1,(int)clob.length()-1);
// System.out.println(s);
}
con.commit();
pstmt.close();
} catch (SQLException e) {
con.rollback();
} finally {
con.setAutoCommit(true);
con.close();
}
return listForm;
}
//不过貌似也可以直接写String进CLOB中,比如
String data= dataInfo.getDetail();
cs.setString(1, newsInfo.getSubject());
cs.setString(2, newsInfo.getAuthor());
cs.setString(3, newsdetail);
分享到:
相关推荐
Java 中操作 Oracle 的 CLOB 字段精解 Java 中操作 Oracle 的 CLOB 字段是一种常见的操作,在实际开发中,我们经常需要在 Oracle 数据库中存储和读取大型文本数据,这时就需要使用 CLOB(Character Large OBject)...
在Java中,Oracle的CLOB操作通常涉及到以下几个关键步骤: 1. **建立数据库连接**: - 使用`DriverManager.getConnection()`方法,传入数据库URL、用户名和密码来创建数据库连接。例如: ```java Connection ...
本文将详细介绍如何使用Java对Oracle中的CLOB类型字段进行操作。 #### CLOB简介 CLOB是Oracle数据库用于存储大型文本数据的一种数据类型,它可以存储最大为4GB的字符数据。在处理CLOB数据时,通常会涉及到以下几种...
本文主要介绍了在Java中处理Oracle数据库CLOB类型的基本方法,包括CLOB的读写操作、中文编码问题的处理以及一些额外的注意事项。通过这些知识点的学习,可以更高效地完成与Oracle数据库的交互任务。
2. **Oracle.ManagedDataAccess.dll**:这是Oracle官方提供的Managed Driver,它是一个.NET Framework库,允许开发者在.NET环境中直接访问Oracle数据库,支持Clob和Blob操作。 3. **SqlSugar.dll**:这是一个流行的...
CLOB操作与BLOB操作类似,但是在获取java.sql.Clob对象后需要强制转换为oracle.sql.CLOB对象,以便使用getCharacterOutputStream()方法将数据写入CLOB字段。 三、出库操作 出库操作可以使用ResultSet.getBlob()或...
综上所述,通过iBATIS操作Oracle的CLOB数据,需要对iBATIS的映射文件、类型处理器以及Oracle的CLOB特性有深入理解。在实际开发中,合理配置和使用这些机制,能够有效地管理大量文本数据,同时保持代码的简洁性和可...
Java 调用 Oracle 含有 CLOB 参数的存储过程是一种常用的数据库操作方式,下面是该过程的详细介绍: 1. 连接数据库 在 Java 中连接 Oracle 数据库需要使用 Oracle 的 JDBC 驱动程序,在本文中使用的驱动程序为 ...
对于CLOB和BLOB字段,Oracle JDBC驱动提供了`oracle.jdbc.driver.OracleClob`和`oracle.jdbc.driver.OracleBlob`类,它们实现了Java的标准接口`java.sql.Clob`和`java.sql.Blob`。这两个接口提供了读取和写入大数据...
java读取oracle数据库中clob字段 把oracle数据库中字段类型为clob的字段值以字符串的形式读取出来
标题 "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...
在J2EE开发中,处理大数据对象(如大文本或二进制数据)时,Oracle数据库的CLOB...通过以上配置和操作,你可以在Spring和Hibernate的环境中顺利地对Oracle数据库的CLOB字段进行读写,满足J2EE应用中的大数据存储需求。
- **准备环境**:首先确保已经安装了Oracle数据库客户端和相应的驱动程序,例如JDBC驱动,以便通过编程语言(如Java、Python等)与数据库交互。 - **连接数据库**:使用相应的连接字符串、用户名和密码建立与...
在Java中,读取Oracle数据库中的CLOB字段可以通过以下步骤实现: 1. **获取CLOB对象**: 首先,通过执行查询语句并从结果集中获取CLOB对象。示例代码中的`lookmail[6]`表示从查询结果的第7个元素(下标为6)获取...
这里需要注意的是,`Clob` 类型在 Java 中表示为 `java.sql.Clob`,而在 Oracle 中则使用 `oracle.sql.CLOB`。 #### 3. 存储 CLOB 数据 接下来介绍如何通过 Hibernate 将 CLOB 数据保存到 Oracle 数据库中。 **...
为了将 SQL Server 中的 Image 类型数据导出到 Oracle 的 CLOB 字段中,我们需要使用Java 语言和 JDBC 驱动程序。下面是一个示例代码,演示如何将 SQL Server 中的 Image 类型数据导出到 Oracle 的 CLOB 字段中: ...
这是因为 WebLogic 服务器为了更好地管理和操作数据库连接,会使用自己的包装类 `weblogic.jdbc.wrapper.Clob_oracle_sql_CLOB` 来表示 CLOB 类型的数据,而不是直接使用 Oracle 提供的标准 `oracle.sql.CLOB` 类。...
Oracle slq bolb转换Base64 CLOB