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

在ORACLE中可以使用LONG类型保存大文本

阅读更多

在ORACLE中可以使用LONG类型保存大文本,但是操作LONG类型的数据和一般的数据类型不同,下面就举例说明如何将数据保存到LONG类型的字段中.

保存数据到LONG类型的字段中,下面将使用一个表进行测试,该表的创建语句如下:

CREATE TABLE T_LONGTEST
(
  ID        INTEGER                             NOT NULL,
  FILENAME  VARCHAR2(100 BYTE),
  CONTENT   LONG
)
LOGGING
NOCACHE
NOPARALLEL;

CREATE UNIQUE INDEX PK_T_LONGTEST ON T_LONGTEST
(ID)
LOGGING
NOPARALLEL;

ALTER TABLE T_LONGTEST ADD (
  CONSTRAINT PK_T_LONGTEST PRIMARY KEY (ID));

插入LONG类型的数据

    String fileName = file.getAbsolutePath();
    long length;
    if (!file.exists()) {
        logger.error("The file <" + fileName + "> is not exists");
        return;
    }
    length = file.length();
    BufferedReader bufReader = new BufferedReader(new FileReader(file));
    Integer id = Integer.valueOf(PubFun1.CreateMaxNo(TEST_LONG_ID, 1));
    PreparedStatement pstmt = con.prepareStatement(INSERT_LONG_SQL);
    pstmt.setObject(1, id);
    pstmt.setObject(2, fileName);
    pstmt.setCharacterStream(3, bufReader, (int) length);
    int retValue = pstmt.executeUpdate();
    if (retValue != 1) {
        logger.error("Error on insert value");
    }
    bufReader.close();
    pstmt.close();

INSERT_LONG_SQL的值为:
INSERT INTO T_LONGTEST(ID, FILENAME, CONTENT) VALUES (?, ?, ?)
注意需要使用setCharacterStream方法设置LONG类型的字段的值.

读取LONG类型的数据

读取也需要使用Stream的方式来读取,下面的代码片断说明了读取LONG类型的字段的方法.
    PreparedStatement pstmt = con.prepareStatement(QUERY_LONG_COL_SQL);
    pstmt.setObject(1, id);
    ResultSet rs = pstmt.executeQuery();
    if (rs.next()) {
        Reader reader = rs.getCharacterStream(1);
        BufferedReader bufReader = new BufferedReader(reader);
        StringBuffer strBuf = new StringBuffer();
        String line;
        while ((line = bufReader.readLine()) != null) {
            strBuf.append(line);
            strBuf.append("\r\n");
        }
        bufReader.close();
        System.out.println("The content is:" + strBuf.toString());
    }
QUEYR_LONG_COL_SQL的取值为:SELECT CONTENT FROM T_LONGTEST WHERE ID=?

更新LONG类型的数据

更新LONG类型的方法和插入的代码是一样的,只是SQL语句不同.下面的代码断说明了如何更新LONG类型的数据.(这个例子没有使用T_LONGTEST表)
    StringReader reader = new StringReader(xmlString);
    pstmt = con
            .prepareStatement(REPORT_MODEL_CONTENT_UPDATE_SQLSTRING);
    pstmt.setCharacterStream(1, reader, xmlString.length());
    pstmt.setInt(2, reportModelId);
    if (pstmt.executeUpdate() == 0) {
        logger
                .error("Error on update");
    }
    reader.close();
REPORT_MODEL_CONTENT_UPDATE_SQLSTRING的取值为:
UPDATE REPORT_MODEL SET CONTENT=? WHERE REPORT_MODEL_ID=?

总结:

从上面的例子可以看到,操作LONG类型的字段主要是通过CharacterStream,如果是更新数据库或者将数据插入到数据库中使用PreparedStatement的setCharacterStream,并且传入Reader类型的参数和字符串的长度.如果是检索数据库中的LONG类型的数据,那么使用getCharacterStream方法,获得一个Reader类型的对象,然后就可以从其中获取LONG类型的数据了.

分享到:
评论

相关推荐

    oracle基本数据类型

    本文将详细介绍 Oracle 中的基本数据类型,并讨论它们的特点和使用区别。 字符类型 Oracle 中有多种字符类型,包括 char、varchar、varchar2、long 等。 * char(n):定长字符串,最大长度为 2000 字节。char ...

    ORACLE数据库中主要字段类型的读写例子(包括:Long、Raw、Blob).pdf

    在Oracle 10g及更高版本中,建议使用Clob类型代替Long,因为Clob提供了更好的性能和功能。 2. Raw类型: Raw数据类型用于存储二进制数据,如MAC地址或加密的密码。它是一个固定长度的字节序列,长度可以从1到2000...

    oracle和sql数据类型

    总结来说,Oracle 和 SQL Server 数据类型在很多方面有相似之处,如字符串、数字、日期/时间、二进制数据类型,但在细节上有所差异,如长度限制、Unicode 支持和特定用途的类型(如 Oracle 的 Bfile 和 SQL Server ...

    ORACLE数据库中主要字段类型的读写例子(包括:Long、Raw、Blob).docx

    在SELECT操作中,你需要指定如何检索和处理这些字段类型的数据,例如使用游标(Cursor)逐行读取LONG和BLOB数据,因为它们可能太大而无法一次性加载到内存。 在实际应用中,处理BLOB字段时,通常会使用Oracle的...

    图片存入Oracle中,用clob和blob两种方式

    下面将详细介绍这两种数据类型以及如何在Oracle中使用它们存储和读取图片。 1. **CLOB数据类型**: `CLOB`数据类型用于存储大量的字符数据,最大可达到4GB。虽然主要用于存储文本,但在本例中,由于图片可以被转换...

    oracle数据类型.doc

    在Oracle中,数据类型可以分为基本数据类型、对象数据类型和大型对象数据类型。以下是对Oracle主要数据类型的详细说明: 1. **Char(n)**: 这是一种定长字符串数据类型,其中n的范围是1到2000字节。如果未指定长度,...

    ORACLE数据库中主要字段类型的读写例子(包括:Long、Raw、Blob) (2).docx

    在ORACLE数据库中,有多种数据类型用于存储不同类型的值,包括VARCHAR2、LONG、RAW以及BLOB。这些数据类型在处理不同类型的数据时各有特点,下面将详细解释它们的用法,并提供相应的读写示例。 1. VARCHAR2:这是...

    ORACLE数据库中主要字段类型的读写例子(包括:Long、Raw、Blob) (2).pdf

    然而,由于Long字段在处理大量数据时性能较低,且不支持索引,所以在现代Oracle数据库设计中,通常推荐使用Clob类型代替Long。 2. Raw类型:Raw数据类型用于存储二进制数据,如用户IC卡的MAC地址(EMP_IC_MACRAW(50...

    Oracle实用教程_04章_Oracle数据类型和函数[整理].pdf

    Oracle 数据类型的使用可以提高应用程序的效率和可靠性,但需要注意的是,在使用 CHAR 型字段记录文本信息时,需要小心 CHAR 型字段的长度限制和空格填充问题。 Oracle 数据类型的选择取决于应用程序的需求和实际...

    Oracle基本数据类型.pdf

    BLOB/CLOB**: 随着 Oracle 对大对象数据类型的支持增强,`LONG` 类型正逐步被淘汰,推荐使用 `BLOB` 或 `CLOB` 来存储大量数据。 - **NUMBER**: 这是一个非常灵活且强大的数据类型,可以处理几乎所有的数值计算需求...

    用PHP操纵Oracle的LOB类型的数据

    在Oracle数据库中,当需要存储超过VARCHAR2类型最大限制(4000个字符或2000个汉字)的数据时,可以使用LOB(Large Object)类型,包括BLOB(Binary Large OBject)、CLOB(Character Large OBject)以及BFILE。...

    在VB中利用OO4O技术操作Oracle中大对象.pdf

    在VB中使用OO40(Oracle Objects for OLE)可以实现与Oracle数据库的无缝集成,简化大对象的读取、写入和管理。 OO40是Oracle公司推出的一种产品,它支持Microsoft的COM(Component Object Model)和ActiveX技术,...

    v512工作室_张利国_Java高端培训系列教材_Oracle实用教程_04章_Oracle数据类型和函数.

    在现实世界中,为了有效地保存和处理不同类型的信息,我们需要使用不同的数据类型。例如,整型数据用于表示整数值,支持常见的数学运算如加、减、乘、除;浮点型数据则用于表示带有小数点的数值;而字符或字符串类型...

    Oracle数据库基本数据类型.pdf

    Oracle 数据库中有多种基本数据类型,包括 char、varchar2、number、date、long、raw、long raw、blob、clob、nclob、bfile 等。这些数据类型是我们在设计数据库时最基本的组成部分,了解每种数据类型的特点和使用...

    oracle的数据类型_java中Clob型详细用法_struts中实现图片上传功能

    在 Java 中,我们可以使用 `oracle.sql.CLOB` 类来操作 Oracle 数据库中的 CLOB 型数据。以下是一个简单的示例,展示如何插入、读取 CLOB 值: ```java import java.io.BufferedReader; import java.io.IOException...

    oracle 的数据类型

    - `LONG`:过时的数据类型,不再推荐使用,适合存储大量文本,但已被LOB类型取代。 - `NCHAR()`和`NVARCHAR2()`:与`CHAR`和`VARCHAR2`类似,但用于存储Unicode字符,确保多语言支持。 2. **Numeric数据类型**: ...

    学习Oracle数据库基本数据类型.pdf

    在Oracle中,数据类型是定义列或变量如何存储和处理数据的关键元素。以下是Oracle数据库中一些基本数据类型的详细说明: 1. **Char(n)**: Char是一种固定长度的字符串数据类型,长度范围为1到2000字节。即使实际...

Global site tag (gtag.js) - Google Analytics