`
captain
  • 浏览: 136963 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类

关于clob字段的一些讨论

阅读更多
在网上闲逛找到了解决方案:
     现在3.x中对blob和clob增加了org.hibernate.lob.SerializableBlob和org.hibernate.lob.SerializableClob类的封装。

其次如果你将前面的测试程序放到weblogic的容器中通过weblogic的数据源得到连接的话,你会发现oracle.sql.BLOB blob = (oracle.sql.BLOB)person.getImage();和 oracle.sql.CLOB clob = (oracle.sql.CLOB)person.getArticle();这俩行会出错,原因就是weblogic进行了包装。

现在将以上两个问题的综合解决方案用以下代码说明:



            for (int i = 0; i < 10; i++) {
                LargeObject large = new LargeObject();
                large.setId(i + "");
                large.setName("林意炜");

                // 插入一个小数据数据
                large.setImage(Hibernate.createBlob(new byte[1]));
                large.setArticle(Hibernate.createClob(" "));

                session.save(large);
                session.flush();

                // 锁定该记录
                session.refresh(large, LockMode.UPGRADE);

                // 插入图片数据
                String fileName = "E:/AAA/" + i + ".jpg";
                SerializableBlob sb = (SerializableBlob)large.getImage();
                java.sql.Blob wrapBlob = sb.getWrappedBlob();
                // 通过非weblogic容器中数据源获得连接的情况
                if(wrapBlob instanceof oracle.sql.BLOB){
                    oracle.sql.BLOB blob = (oracle.sql.BLOB) wrapBlob;
                    OutputStream out = blob.getBinaryOutputStream();
                    out.write(getData(fileName));
                    out.close();
                }
                // 使用weblogic的Oracle Thin driver类型连接池,驱动类名:oracle.jdbc.OracleDriver
                else if(wrapBlob instanceof weblogic.jdbc.vendor.oracle.OracleThinBlob){
                    OracleThinBlob blob = (OracleThinBlob)wrapBlob;
                    OutputStream out = blob.getBinaryOutputStream();
                    out.write(getData(fileName));
                    out.close();
                }


                // 插入文章数据
                fileName = "E:/AAA/" + i + ".java";
                SerializableClob cb = (SerializableClob)large.getArticle();
                java.sql.Clob wrapClob = cb.getWrappedClob();
                // 通过非weblogic容器中数据源获得连接的情况
                if(wrapClob instanceof oracle.sql.CLOB){
                    oracle.sql.CLOB clob = (oracle.sql.CLOB) wrapClob;
                    Writer writer = clob.getCharacterOutputStream();
                    String article = new String(getData(fileName));
                    writer.write(article);
                    writer.close();
                }
                // 使用weblogic的Oracle Thin driver类型连接池,驱动类名:oracle.jdbc.OracleDriver
                else if(wrapClob instanceof weblogic.jdbc.vendor.oracle.OracleThinClob){
                    OracleThinClob clob = (OracleThinClob)wrapClob;
                    Writer writer = clob.getCharacterOutputStream();
                    String article = new String(getData(fileName));
                    writer.write(article);
                    writer.close();
                }
            }


***************************************************
采用得是ORACLE9i数据库,Jboss或Weblogic。
JDBC采用ORACLE9i自带的Class12.jar
-------------
数据库结构:
java代码: 


CREATE TABLE SNCPARAMETERS
(
  ID     NUMBER(<span style="COLOR: #000000" ?="">19)                             NOT <span style="FONT-WEIGHT: bold; COLOR: #990066" ?="">NULL,
  SNCID  NUMBER(<span style="COLOR: #000000" ?="">19),
  NAME   VARCHAR2(<span style="COLOR: #000000" ?="">255),
  VALUE  CLOB
)


--------------
BO采用xdoclet建立的:
java代码: 


<span style="FONT-WEIGHT: bold; COLOR: #990066" ?="">public<span style="FONT-WEIGHT: bold; COLOR: #990066" ?="">class SNCParameters <span style="FONT-WEIGHT: bold; COLOR: #990066" ?="">extends BaseObject
{

    /**
     * Returns the id.
     *
     * @return      long
     * @hibernate.id
     *          column = "id"
     *          type = "long"
     *          generator-class = "native"
     *          unsaved-value = "null"
     */

    <span style="FONT-WEIGHT: bold; COLOR: #990066" ?="">public<span style="COLOR: #aaaadd" ?="">Long getId()
    {
        <span style="FONT-WEIGHT: bold; COLOR: #990066" ?="">return id;
    }

    /**
     *    Sets the Id attribute of the SNCParameters object
     *
     * @param    id  The new Id value
     */

    <span style="FONT-WEIGHT: bold; COLOR: #990066" ?="">public<span style="FONT-WEIGHT: bold; COLOR: #990066" ?="">void setId(<span style="COLOR: #aaaadd" ?="">Long id)
    {
        this.id = id;
    }


    /**
     * Returns the name.
     *
     * @return      String
     *
     * @hibernate.property
     *          column = "name"
     *          type = "string"
     *          not-null = "true"
     *          unique = "false"
     */


    <span style="FONT-WEIGHT: bold; COLOR: #990066" ?="">public<span style="COLOR: #aaaadd" ?="">String getName()
    {
        <span style="FONT-WEIGHT: bold; COLOR: #990066" ?="">return name;
    }

    /**
     *    Sets the Name attribute of the SNCParameters object
     *
     * @param    name  The new Name value
     */

    <span style="FONT-WEIGHT: bold; COLOR: #990066" ?="">public<span style="FONT-WEIGHT: bold; COLOR: #990066" ?="">void setName(<span style="COLOR: #aaaadd" ?="">String name)
    {
        this.name = name;
    }

    /**
     * Returns the sncId.
     *
     * @return      Long
     *
     * @hibernate.property
     *          column = "sncId"
     *          type = "long"
     *          not-null = "true"
     *          unique = "false"
     */


    <span style="FONT-WEIGHT: bold; COLOR: #990066" ?="">public<span style="COLOR: #aaaadd" ?="">Long getSncId()
    {
        <span style="FONT-WEIGHT: bold; COLOR: #990066" ?="">return sncId;
    }

    /**
     *    Sets the SncId attribute of the SNCParameters object
     *
     * @param    sncId  The new SncId value
     */

    <span style="FONT-WEIGHT: bold; COLOR: #990066" ?="">public<span style="FONT-WEIGHT: bold; COLOR: #990066" ?="">void setSncId(<span style="COLOR: #aaaadd" ?="">Long sncId)
    {
        this.sncId = sncId;
    }

    /**
     * Returns the values.
     *
     * @return      Clob
     *
     * @hibernate.property
     *          column = "value"
     *          type = "clob"
     *          not-null = "true"
     *          unique = "false"
     */


    <span style="FONT-WEIGHT: bold; COLOR: #990066" ?="">public<span style="COLOR: #aaaadd" ?="">Clob getValue()
    {
        <span style="FONT-WEIGHT: bold; COLOR: #990066" ?="">return value;
    }

    /**
     *    Sets the Values attribute of the SNCParameters object
     *
     * @param    values  The new Values value
     */

    <span style="FONT-WEIGHT: bold; COLOR: #990066" ?="">public<span style="FONT-WEIGHT: bold; COLOR: #990066" ?="">void setValue(<span style="COLOR: #aaaadd" ?="">Clob value)
    {
        this.value = value;
    }
    <span style="FONT-WEIGHT: bold; COLOR: #990066" ?="">private<span style="COLOR: #aaaadd" ?="">Long id;
    <span style="FONT-WEIGHT: bold; COLOR: #990066" ?="">private<span style="COLOR: #aaaadd" ?="">Long sncId;
    <span style="FONT-WEIGHT: bold; COLOR: #990066" ?="">private<span style="COLOR: #aaaadd" ?="">String name;
    <span style="FONT-WEIGHT: bold; COLOR: #990066" ?="">private<span style="COLOR: #aaaadd" ?="">Clob value;
    <span style="FONT-WEIGHT: bold; COLOR: #990066" ?="">private<span style="COLOR: #aaaadd" ?="">String valueString;
    <span style="FONT-WEIGHT: bold; COLOR: #990066" ?="">public<span style="COLOR: #aaaadd" ?="">String getValueString()
    {
        <span style="FONT-WEIGHT: bold; COLOR: #990066" ?="">return valueString;
    }
        <span style="FONT-WEIGHT: bold; COLOR: #990066" ?="">public<span style="FONT-WEIGHT: bold; COLOR: #990066" ?="">void setValueString(<span style="COLOR: #aaaadd" ?="">String  valueString)
    {
        this.valueString = valueString;
    }
}



注:valueString并不映射到数据库的CLOB字段,只是方便需要使用这个BO的人用GET、SET 处理这个巨长的CLOB字段
------------
xdocLet生成的XML文件:
java代码: 


<?xml version="<span style="COLOR: #000000" ?="">1.<span style="COLOR: #000000" ?="">0"?>

<!DOCTYPE hibernate-mapping <span style="FONT-WEIGHT: bold; COLOR: #990066" ?="">PUBLIC
    "-//Hibernate/Hibernate Mapping DTD 2.0//EN"
    "http://hibernate.sourceforge.net/hibernate-mapping-2.0.dtd">

<hibernate-mapping>
    <<span style="FONT-WEIGHT: bold; COLOR: #990066" ?="">class
        name="com.idncn.mc.bo.SNCParameters"
        table="SNCParameters"
        dynamic-update="<span style="FONT-WEIGHT: bold; COLOR: #990066" ?="">false"
        dynamic-insert="<span style="FONT-WEIGHT: bold; COLOR: #990066" ?="">false"
    >

        <id
            name="id"
            column="id"
            type="long"
            unsaved-value="<span style="FONT-WEIGHT: bold; COLOR: #990066" ?="">null"
        >
            <generator <span style="FONT-WEIGHT: bold; COLOR: #990066" ?="">class="native">
            </generator>
        </id>

        <property
            name="name"
            type="string"
            update="<span style="FONT-WEIGHT: bold; COLOR: #990066" ?="">true"
            insert="<span style="FONT-WEIGHT: bold; COLOR: #990066" ?="">true"
            column="name"
            not-<span style="FONT-WEIGHT: bold; COLOR: #990066" ?="">null="<span style="FONT-WEIGHT: bold; COLOR: #990066" ?="">true"
            unique="<span style="FONT-WEIGHT: bold; COLOR: #990066" ?="">false"
        />

        <property
            name="sncId"
            type="long"
            update="<span style="FONT-WEIGHT: bold; COLOR: #990066" ?="">true"
            insert="<span style="FONT-WEIGHT: bold; COLOR: #990066" ?="">true"
            column="sncId"
            not-<span style="FONT-WEIGHT: bold; COLOR: #990066" ?="">null="<span style="FONT-WEIGHT: bold; COLOR: #990066" ?="">true"
            unique="<span style="FONT-WEIGHT: bold; COLOR: #990066" ?="">false"
        />

        <property
            name="value"
            type="clob"
            update="<span style="FONT-WEIGHT: bold; COLOR: #990066" ?="">true"
            insert="<span style="FONT-WEIGHT: bold; COLOR: #990066" ?="">true"
            column="value"
            not-<span style="FONT-WEIGHT: bold; COLOR: #990066" ?="">null="<span style="FONT-WEIGHT: bold; COLOR: #990066" ?="">true"
            unique="<span style="FONT-WEIGHT: bold; COLOR: #990066" ?="">false"
        />
    </<span style="FONT-WEIGHT: bold; COLOR: #990066" ?="">class>

</hibernate-mapping>


--------------------
insert的代码:
java代码: 


    <span style="FONT-WEIGHT: bold; COLOR: #990066" ?="">public<span style="COLOR: #aaaadd" ?="">List batchAddSncParameters(<span style="COLOR: #aaaadd" ?="">List sncParametersList, <span style="COLOR: #aaaadd" ?="">Long sncId)<span style="FONT-WEIGHT: bold; COLOR: #990066" ?="">throws DbAccessException
    {
        logger.enterMethod();
        <span style="COLOR: #aaaadd" ?="">List ret = <span style="FONT-WEIGHT: bold; COLOR: #990066" ?="">new<span style="COLOR: #aaaadd" ?="">ArrayList();
        <span style="FONT-WEIGHT: bold; COLOR: #990066" ?="">try
        {
            sess = getSession();
            <span style="FONT-WEIGHT: bold; COLOR: #990066" ?="">if(sncParametersList != <span style="FONT-WEIGHT: bold; COLOR: #990066" ?="">null && sncParametersList.size() > <span style="COLOR: #000000" ?="">0)
            {
                <span style="FONT-WEIGHT: bold; COLOR: #990066" ?="">for(<span style="FONT-WEIGHT: bold; COLOR: #990066" ?="">int i = <span style="COLOR: #000000" ?="">0; i < sncParametersList.size(); i++)
                {
                    SNCParameters cp = (SNCParameters) sncParametersList.get(i);
                    long newId = -<span style="COLOR: #000000" ?="">1;
                    <span style="FONT-WEIGHT: bold; COLOR: #990066" ?="">if(cp != <span style="FONT-WEIGHT: bold; COLOR: #990066" ?="">null)
                    {
                        SNCParameters cpNew = <span style="FONT-WEIGHT: bold; COLOR: #990066" ?="">new SNCParameters();
                        cpNew.setSncId(sncId);
                        cpNew.setName(cp.getName());
                        cpNew.setValue(Hibernate.createClob(" "));
                        newId = ((<span style="COLOR: #aaaadd" ?="">Long) sess.save(cpNew)).longValue();
                        sess.flush();

                        sess.refresh(cpNew, LockMode.UPGRADE);
                        <span style="COLOR: #aaaadd" ?="">String content = cp.getValueString();

                        <span style="COLOR: #aaaadd" ?="">String appserver = <span style="COLOR: #aaaadd" ?="">System.getProperty("appserver", "jboss");
                        <span style="FONT-WEIGHT: bold; COLOR: #990066" ?="">if(!appserver.equalsIgnoreCase("jboss"))
                        {
                            //weblogic
                            OracleThinClob clob = (OracleThinClob) cpNew.getValue();
                            java.io.Writer pw = clob.getCharacterOutputStream();
                            pw.write(content);
                            pw.flush();
                            pw.close();
                        }
                        <span style="FONT-WEIGHT: bold; COLOR: #990066" ?="">else
                        {
                            //jboss
                            oracle.sql.CLOB clob = (oracle.sql.CLOB) cpNew.getValue();
                            java.io.Writer pw = clob.getCharacterOutputStream();
                            pw.write(content);
                            pw.flush();
                            pw.close();
                        }
                        ret.add(<span style="FONT-WEIGHT: bold; COLOR: #990066" ?="">new<span style="COLOR: #aaaadd" ?="">Long(newId));
                    }
                }
            }
        }
        <span style="FONT-WEIGHT: bold; COLOR: #990066" ?="">catch(<span style="COLOR: #aaaadd" ?="">Exception e)
        {
            logger.error(e);
            ErrorReason errorReason = <span style="FONT-WEIGHT: bold; COLOR: #990066" ?="">new ErrorReason(ErrorReason.INSERT_OBJECT_FAILED_REASON);
            throw <span style="FONT-WEIGHT: bold; COLOR: #990066" ?="">new DbAccessException(DbAccessException.DBA_OPERATE_EXCEPTION, errorReason);
        }
        <span style="FONT-WEIGHT: bold; COLOR: #990066" ?="">finally
        {
            closeSession(sess);
            logger.exitMethod();
        }
        <span style="FONT-WEIGHT: bold; COLOR: #990066" ?="">return ret;
    }


-----------------
注:Weblogic必须使用weblogic.jdbc.vendor.oracle.OracleThinClob
---------------------
读取CLOB字段:
java代码: 


    <span style="FONT-WEIGHT: bold; COLOR: #990066" ?="">public<span style="COLOR: #aaaadd" ?="">List selectSncParametersBySncId(long sncId)<span style="FONT-WEIGHT: bold; COLOR: #990066" ?="">throws DbAccessException
    {
        logger.enterMethod();
        <span style="COLOR: #aaaadd" ?="">List ret = <span style="FONT-WEIGHT: bold; COLOR: #990066" ?="">new<span style="COLOR: #aaaadd" ?="">ArrayList();
        <span style="FONT-WEIGHT: bold; COLOR: #990066" ?="">try
        {
            sess = getSession();
            <span style="COLOR: #aaaadd" ?="">String query = "select cp from cp in <span style="FONT-WEIGHT: bold; COLOR: #990066" ?="">class com.idncn.mc.bo.SNCParameters where cp.sncId = ?";
            logger.debug("SQL=" + query);
            <span style="COLOR: #aaaadd" ?="">List iter = sess.find(query, <span style="FONT-WEIGHT: bold; COLOR: #990066" ?="">new<span style="COLOR: #aaaadd" ?="">Long(sncId), Hibernate.LONG);
            <span style="FONT-WEIGHT: bold; COLOR: #990066" ?="">for(<span style="FONT-WEIGHT: bold; COLOR: #990066" ?="">int i = <span style="COLOR: #000000" ?="">0; i < iter.size(); i++)
            {
                SNCParameters newCp = <span style="FONT-WEIGHT: bold; COLOR: #990066" ?="">new SNCParameters();
                SNCParameters cp = (SNCParameters)(iter.get(i));
                logger.debug("after fetch:" + cp);
                newCp.setId(cp.getId());
                newCp.setSncId(cp.getSncId());
                newCp.setName(cp.getName());
                java.sql.Clob clob = cp.getValue();
                <span style="FONT-WEIGHT: bold; COLOR: #990066" ?="">if(clob != <span style="FONT-WEIGHT: bold; COLOR: #990066" ?="">null)
                {
                    logger.debug("b===" + clob.length());
                    <span style="COLOR: #aaaadd" ?="">String b = clob.getSubString(<span style="COLOR: #000000" ?="">1, (<span style="FONT-WEIGHT: bold; COLOR: #990066" ?="">int) clob.length());
                    //logger.debug("b==="+b);
                    newCp.setValueString(b);
                }
                ret.add(newCp);
            }
        }
        <span style="FONT-WEIGHT: bold; COLOR: #990066" ?="">catch(<span style="COLOR: #aaaadd" ?="">Exception e)
        {
            logger.error(e);
            ErrorReason errorReason = <span style="FONT-WEIGHT: bold; COLOR: #990066" ?="">new ErrorReason(ErrorReason.SELECT_FAILED_REASON);
            throw <span style="FONT-WEIGHT: bold; COLOR: #990066" ?="">new DbAccessException(DbAccessException.DBA_OPERATE_EXCEPTION, errorReason);
        }
        <span style="FONT-WEIGHT: bold; COLOR: #990066" ?="">finally
        {
            closeSession(sess);
            logger.exitMethod();
        }
        <span style="FONT-WEIGHT: bold; COLOR: #990066" ?="">return ret;
    }


---------------
更新这个字段的代码:
java代码: 


    <span style="FONT-WEIGHT: bold; COLOR: #990066" ?="">public<span style="FONT-WEIGHT: bold; COLOR: #990066" ?="">void updateSncParameters(SNCParameters newParam)<span style="FONT-WEIGHT: bold; COLOR: #990066" ?="">throws DbAccessException
    {
        logger.enterMethod();
        <span style="FONT-WEIGHT: bold; COLOR: #990066" ?="">try
        {
            sess = getSession();

            <span style="COLOR: #aaaadd" ?="">Long id = newParam.getId();
            SNCParameters pp = (SNCParameters) sess.load(SNCParameters.class, id, net.sf.hibernate.LockMode.UPGRADE);

            pp.setSncId(newParam.getSncId());
            pp.setName(newParam.getName());
            pp.setId(newParam.getId());

            <span style="COLOR: #aaaadd" ?="">String newValue = newParam.getValueString();
            logger.debug("Update Length =" + newValue.length());

            <span style="COLOR: #aaaadd" ?="">String appserver = <span style="COLOR: #aaaadd" ?="">System.getProperty("appserver", "jboss");
            logger.debug("appserver: " + appserver);
            <span style="FONT-WEIGHT: bold; COLOR: #990066" ?="">if(!appserver.equalsIgnoreCase("jboss"))
            {
                //weblogic
                OracleThinClob clob = (OracleThinClob) pp.getValue();
                <span style="FONT-WEIGHT: bold; COLOR: #990066" ?="">if(pp != <span style="FONT-WEIGHT: bold; COLOR: #990066" ?="">null)
                {
                    java.io.Writer pw = clob.getCharacterOutputStream();
                    pw.write(newValue);
                    pw.flush();
                    pw.close();
                }
            }
            <span style="FONT-WEIGHT: bold; COLOR: #990066" ?="">else
            {
                //jboss
                oracle.sql.CLOB clob = (oracle.sql.CLOB) pp.getValue();
                <span style="FONT-WEIGHT: bold; COLOR: #990066" ?="">if(pp != <span style="FONT-WEIGHT: bold; COLOR: #990066" ?="">null)
                {
                    java.io.Writer pw = clob.getCharacterOutputStream();
                    pw.write(newValue);
                    pw.flush();
                    pw.close();
                }
            }
        }
        <span style="FONT-WEIGHT: bold; COLOR: #990066" ?="">catch(<span style="COLOR: #aaaadd" ?="">Exception e)
        {
            logger.error(e);
            ErrorReason errorReason = <span style="FONT-WEIGHT: bold; COLOR: #990066" ?="">new ErrorReason(ErrorReason.UPDATE_OBJECT_FAILED_REASON);
            throw <span style="FONT-WEIGHT: bold; COLOR: #990066" ?="">new DbAccessException(DbAccessException.DBA_OPERATE_EXCEPTION, errorReason);
        }
        <span style="FONT-WEIGHT: bold; COLOR: #990066" ?="">finally
        {
            closeSession(sess);
            logger.exitMethod();
        }
    }




船长 2006-07-11 11:07 发表评论
分享到:
评论

相关推荐

    dblink_clob字段异常解决方案

    下面将讨论解决dblink_clob字段异常的解决方案。 什么是dblink? DBLink是Oracle数据库中的一种机制,允许用户从一个数据库实例访问另一个数据库实例中的数据。DBLink提供了一种方式来访问远程数据库中的数据,而...

    sql server中的image类型的数据导出到oracle的clob字段中

    在本文中,我们将讨论如何将 SQL Server 中的 Image 类型数据导出到 Oracle 的 CLOB 字段中。 Image 类型在 SQL Server 中的应用 在 SQL Server 中,Image 类型用于存储二进制大对象(BLOB),如图像、音频、视频...

    关于oracle clob 类型字段重建索引SQL及修复用户表空间索引空间的存储过程

    在这个例子中,`your_clob_index_name`是你需要重建的索引名,`your_table`是包含CLOB字段的表名,而`clob_column`是CLOB类型字段的列名。 接下来,我们讨论用户表空间索引空间的修复。当表空间的空间不足或者需要...

    ActiveXObject和Clob字段的插入更新

    接下来,我们来讨论Clob字段。Clob代表Character Large Object,是一种数据库字段类型,用于存储大文本数据,如长篇文章、HTML文档或XML文件。与BLOB(Binary Large Object)不同,Clob专门用于字符数据。 在数据库...

    《ETL数据整合与处理(Kettle)》教学教案 —04字段处理.pdf

    4. **问题与讨论**: - 引导性问题帮助学生建立基础概念,探究性问题深化理解,拓展性问题鼓励创新思维和实践操作。 5. **教学过程**: - 理论部分详细讲解各个组件及其参数设置,强调它们在实际操作中的应用。 ...

    Oracle的CLOB大数据字段类型操作方法

    创建包含CLOB字段的表是第一步。例如,创建一个名为TEMP的表,包含一个CLOB类型的字段temp_clob,可以使用以下SQL语句: ```sql CREATE TABLE TEMP ( name VARCHAR2(200), age NUMBER, temp_clob CLOB ) ...

    hibernate保存blob,clob对象

    此外,对于频繁读取的CLOB字段,可以考虑将其索引或部分内容缓存。 最后,虽然Hibernate提供了便捷的接口,但在处理BLOB和CLOB时,还需要了解所用数据库的特性,因为不同的数据库可能有不同的限制和最佳实践。例如...

    如何将DB2数据库中的大对象(BLOB,CLOB)数据类型复制到Oracle数据库中

    本例中,我们讨论如何将DB2数据库中的BLOB数据类型复制到Oracle数据库。 1. **BLOB与CLOB数据类型**: BLOB(Binary Large Object)存储二进制大对象,如图像、音频或视频文件。CLOB(Character Large Object)...

    test-clob.rar

    这个压缩包可能包含了用于演示或测试CLOB字段如何在Oracle数据库中创建、查询、更新和删除的脚本或应用程序。 在描述中同样提到了"test-clob.rar",这意味着文件的内容可能是一系列针对CLOB类型的实验或实例,用于...

    delphi Memo字段过滤

    在Delphi中,你可以使用TSQLiteDataset或类似组件来过滤CLOB字段。这里是一个示例: ```delphi var Dataset: TSQLiteDataset; begin Dataset := TSQLiteDataset.Create(nil); Dataset.Connection := ...

    String_clob.zip_oracle

    当Java应用程序需要将`String`数据存入Oracle数据库的CLOB字段时,可以使用JDBC的`PreparedStatement`和`setClob()`方法。例如: ```java String content = "这是要存储的字符串"; PreparedStatement pstmt = ...

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

    其中,`imageData`是Blob字段,用于存储图片数据。 3. **读取图片并转换为Blob** 使用`FileInputStream`读取图片文件,然后将其转换为`Blob`对象。可以使用`PreparedStatement`的`setBlob()`方法将Blob对象设置为...

    06_传智播客JPA详解_大数据字段映射与字段延迟加载

    在JPA中,这些大数据字段通常被映射为Blob(二进制大对象)或Clob(字符大对象)。映射过程涉及到定义实体类中的属性,并使用特定的JPA注解(例如`@Lob`)来指示这些属性应如何与数据库中的大数据字段对应。通过这样...

    liferay使用心得

    在Liferay数据库模型中,CLOB字段可以作为字段类型出现,而在服务构建器生成的接口中,通常会有对应的getter和setter方法来操作CLOB数据。例如,`getHtmlContent()`和`setHtmlContent(Clob htmlContent)`。在业务...

    泛微E9适配达梦数据库说明.docx

    具体做法是,查找并修改所有使用`oracle.sql.CLOB`或`empty_clob()`的地方,确保在操作CLOB字段时不会将达梦视为Oracle。示例代码如下: ```java // 原始代码 boolean isoracle = (statement.getDBType()).equals(...

    Oracle对字段的增删改方法分享

    Oracle数据库是全球广泛使用的数据库管理系统,以其稳定性和高性能...同时,对于其他相关的技术,如CLOB字段的处理、关键字作为字段名的使用、BLOB字段的读写等,也需要深入理解,以便在遇到复杂情况时能够应对自如。

    ORACLE中解析XML.pdf

    文档中提到将XML数据存储在CLOB字段中,并通过SQL查询将其读取出来。这种方式在处理大量XML数据时非常有效。 3. DOM解析:文档对象模型(DOM,Document Object Model)是一个跨平台、语言无关的应用编程接口(API)...

    管理oracle对象.pptx

    接下来我们将详细讨论表结构、数据类型、数据存储方式以及ROWID。 1. 表结构与数据类型 - 表结构:表由行和列组成,每一行代表一条数据记录,每列对应一个特定的数据域,如字段名、数据类型、长度、约束和默认值。...

    一些常用的有关java的chm文档

    "源码"标签暗示了讨论可能涉及实际的Java代码示例,展示如何在实体类中应用Hibernate注解。"工具"标签则指出Hibernate作为一种广泛使用的开发工具,它的注解机制是Java开发者必备的知识之一。 【文件名称】:...

    Oracle

    在"LOB字段的操作.txt"中,可能涵盖了BLOB(二进制大对象)、CLOB(字符大对象)和NCLOB(国家字符集的大对象)的插入、更新、读取和删除方法,以及如何优化LOB字段的性能。 4. **JDBC调用存储过程**:"jdbc调存储...

Global site tag (gtag.js) - Google Analytics