`
zgqynx
  • 浏览: 1355718 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

CLOB + java

    博客分类:
  • java
阅读更多
原文:
http://www.experts-exchange.com/Programming/Languages/Java/Q_20274035.html?cid=335

Title:  CLOB + java
Bookmark:
Question: I am trying to use the sample code I found in the oracle doc's for to update my db. However, although it looks like it is updating the clob - when I check the db it is not updated see below code.

**********************************************************

import java.sql.*;                                           // line 1
import java.io.*;
import java.util.*;

// Importing the Oracle Jdbc driver package
// makes the code more readable
import oracle.jdbc.driver.*;

// Import this to get CLOB and BLOB classes
import oracle.sql.*;

public class test1
{
  public static void main (String args [])
       throws Exception
  {
    // Load the Oracle JDBC driver
    DriverManager.registerDriver(new oracle.jdbc.driver.OracleDriver());

    // Connect to the database. You can put a database
    // name after the @ sign in the connection URL.
    Connection conn =
      DriverManager.getConnection ("jdbc:oracle:oci8:@dev", "IS5_DEV", "IS5_DEV");

    // It's faster when auto commit is off
    conn.setAutoCommit (false);                             // line 26

    // Create a Statement
    Statement stmt = conn.createStatement ();
   /*
    try
    {
      stmt.execute ("DROP TABLE basic_lob_table");
    }
    catch (SQLException e)
    {
      // An exception could be raised here if the table did
      // not exist already but we gleefully ignore it
    }                                                       // line 38

    // Create a table containing a BLOB and a CLOB             line 40
    stmt.execute ("CREATE TABLE basic_lob_table (x varchar2 (30),
                   b blob, c clob)");

    // Populate the table
    stmt.execute ("INSERT INTO basic_lob_table VALUES ('one',
           '010101010101010101010101010101', 'onetwothreefour')");
    stmt.execute ("INSERT INTO basic_lob_table VALUES ('two',
   '0202020202020202020202020202', 'twothreefourfivesix')");
                                                            // line 49
    System.out.println ("Dumping lobs");
 */
    // Select the lobs
    ResultSet rset = stmt.executeQuery ("SELECT * FROM is_ui_layout FOR UPDATE");
    while (rset.next ())
    {
      // Get the lobs

      CLOB clob = ((OracleResultSet)rset).getCLOB (6);

      // Print the lob contents
      //dumpClob (conn, clob);

      // Change the lob contents
      fillClob (conn, clob, 2000);
    }
                                                            // line 68
    System.out.println ("Dumping lobs again");

    rset = stmt.executeQuery ("SELECT * FROM is_ui_layout");
    while (rset.next ())
    {
      // Get the lobs

      CLOB clob = ((OracleResultSet)rset).getCLOB (6);

      // Print the lobs contents

      dumpClob (conn, clob);
    }
  }                                                         // line 82

  // Utility function to dump Clob contents
  static void dumpClob (Connection conn, CLOB clob)
    throws Exception
  {
    // get character stream to retrieve clob data
    Reader instream = clob.getCharacterStream();

    // create temporary buffer for read                        line 91
    char[] buffer = new char[10];

    // length of characters read
    int length = 0;

    // fetch data                                              line 98
    while ((length = instream.read(buffer)) != -1)
    {
      System.out.print("Read " + length + " chars: ");

      for (int i=0; i<length; i++)
        System.out.print(buffer[i]);
      System.out.println();
    }

    // Close input stream
    instream.close();
  }                                                        // line 108

                                               // line 135
   // Utility function to put data in a Clob
  static void fillClob (Connection conn, CLOB clob, long length)
    throws Exception
  {
    Writer outstream = clob.getCharacterOutputStream();

    int i = 0;
    int chunk = 10;

    while (i < length)
    {
      outstream.write(i + "hello world", 0, chunk);        // line 147

      i += chunk;
      if (length - i < chunk)
          chunk = (int) length - i;
    }
    outstream.close();
  }                                                                                                                  // line 154

}

分享到:
评论

相关推荐

    clob-blob.rar_blob and clob_clob_java CLOB_java oracle cl_oracle

    标题"Clob-blob.rar_blob and clob_clob_java CLOB_java oracle cl_oracle"暗示了这个压缩包包含的资源是关于使用Java操作Oracle数据库中的CLOB和BLOB字段的示例代码。这个压缩包可能包含了一个名为`clob-blob.java`...

    java存储oracle中的clob类型

    ### Java存储Oracle中的CLOB类型知识点详解 #### 一、CLOB类型简介及Java操作方法 CLOB(Character Large Object)是一种用于存储大量文本数据的数据类型,在Oracle数据库中被广泛使用,可以支持最大4GB的数据量。...

    运用Java如何存取Oracle中的CLOB类型字段

    ### 运用Java如何存取Oracle中的CLOB类型字段 #### 概述 在数据库操作中,经常会遇到处理大量文本数据的需求,例如存储文章、新闻、文档等。Oracle数据库提供了CLOB(Character Large Object)类型来存储大容量的...

    JAVA对clob的操作

    JAVA对CLOB的操作 在JAVA中,操作Oracle数据库中的BLOB和CLOB类型字段是一种常见的需求。然而,网络上关于JAVA对Oracle中BLOB、CLOB类型字段的操作说明往往不够全面、不够准确,甚至有的简直就是胡说八道。因此,...

    java读写oracle clob字段

    本教程将介绍如何使用Java来读取和写入Oracle数据库中的CLOB字段。 首先,我们需要引入相关的Java和Oracle JDBC驱动库。在上述代码中,我们看到`import oracle.jdbc.driver.OracleDriver;`,这表示我们将使用Oracle...

    java读大对象CLOB

    JAVA读CLOB对象 完整代码 very good very strong

    java中操作oracle的CLOB字段精解

    Java 中操作 Oracle 的 CLOB 字段精解 Java 中操作 Oracle 的 CLOB 字段是一种常见的操作,在实际开发中,我们经常需要在 Oracle 数据库中存储和读取大型文本数据,这时就需要使用 CLOB(Character Large OBject)...

    Mybatis 处理 CLOB、BLOB 类型数据

    MyBatis 提供了对 CLOB 和 BLOB 类型的内置支持,通过将 CLOB 类型映射到 Java 的 String 类型,BLOB 类型映射到 byte[] 类型。 在使用 MyBatis 时,需要在实体类中定义对应的字段类型,例如: ```java public ...

    三层架构Delphi+Java+Oracle模式的实现

    ### 三层架构Delphi+Java+Oracle模式的实现 #### 架构简介 该架构采用的是典型的三层架构设计,具体来说是以Delphi作为客户端、Java作为应用服务端、Oracle作为后台数据库的一种组合形式。这样的设计既能够发挥各...

    mybatis 对clob类型转换

    创建一个实现`org.apache.ibatis.type.TypeHandler`接口的类,重写`setParameter`和`getResult`方法,确保在SQL语句执行前能将Java对象转换为CLOB,执行后又能从CLOB还原为原始数据。 2. **配置MyBatis** 在...

    java操作clob

    【Java 操作 CLOB 基础教程】 在 Java 中操作 Oracle 数据库中的 CLOB(Character Large Object)字段是一项常见的任务。CLOB 类型用于存储大量文本数据,如长篇文章或文档。本教程将详细介绍如何在 Java 中使用 ...

    jdbc 处理clob类型字段

    在Java中,我们通常使用PreparedStatement来插入CLOB数据。首先,创建一个Clob对象,并将待插入的文本数据写入到Clob对象中,然后在SQL语句中设置对应的参数。例如: ```java String sql = "INSERT INTO my_table ...

    java读取oracle数据库中clob字段.txt

    java读取oracle数据库中clob字段 把oracle数据库中字段类型为clob的字段值以字符串的形式读取出来

    java中(注解符)处理Clob(blob)类型

    Java 中处理 Clob 和 Blob 类型的注解配置 Java 中处理 Clob 和 Blob 类型的注解配置是一种常见的处理大规模数据的方法。Clob(Character Large OBject)类型和 Blob(Binary Large OBject)类型是数据库中两种常用...

    weblogic.jdbc.wrapper.Clob_oracle_sql_CLOB 类型转换解决办法

    2. **反射调用**:对于 `weblogic.jdbc.wrapper.Clob_oracle_sql_CLOB` 类型的对象,使用 Java 反射机制调用 `getVendorObj()` 方法,该方法返回一个 `oracle.sql.CLOB` 类型的对象。 3. **CLOB 数据读取**:无论是...

    java将图片写入数据库,并读出来(blob clob)

    这个过程通常涉及到Blob和Clob数据类型,它们是Java中的两种特殊对象,用于存储大对象(LOB)。Blob用于存储二进制数据,如图片、音频或视频文件,而Clob则用于存储字符数据,比如长文本。以下是如何使用Java处理...

    java调用oracle含有clob参数的存储过程.doc

    "Java 调用 Oracle 含有 CLOB 参数的存储过程" Java 调用 Oracle 含有 CLOB 参数的存储过程是一种常用的数据库操作方式,下面是该过程的详细介绍: 1. 连接数据库 在 Java 中连接 Oracle 数据库需要使用 Oracle ...

    CLOB、BLOB___CLOB与BLOB的区别

    CLOB、BLOB 与 CLOB 与 BLOB 的区别 CLOB(Character Large OBject)是一种数据库类型,用于存储大型字符对象。...Java 中可以使用不同的方式来操作 CLOB,包括将 CLOB 看成字符串类型和使用流式操作方式。

    jdbc连接例子 Oracle CLOB转换为String java调用存储过程之输出游标

    标题中的“jdbc连接例子 Oracle CLOB转换为String java调用存储过程之输出游标”涉及到三个主要的Java数据库编程知识点:JDBC连接、Oracle数据库中的CLOB类型处理以及通过Java调用存储过程处理输出游标。 1. JDBC...

Global site tag (gtag.js) - Google Analytics