- 浏览: 135098 次
- 性别:
- 来自: 北京
-
文章分类
最新评论
-
haizhilan:
[b][/b]
flex整合spring,hibernate思路 -
liran_java:
太牛B了
Tomcat5不保留SESSION.ser的具体配置 -
瀚愚:
EDrawMax
能画很漂亮的图,不过要收费的,在公司不让用, ...
大家平时一般都用啥工具画架构图呀(忽悠客户的那种) -
captain:
mikeandmore 写道freemind?
我一般用fre ...
大家平时一般都用啥工具画架构图呀(忽悠客户的那种) -
iamlibo:
vp_uml
大家平时一般都用啥工具画架构图呀(忽悠客户的那种)
在网上闲逛找到了解决方案:
现在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
-------------
数据库结构:
--------------
BO采用xdoclet建立的:
注:valueString并不映射到数据库的CLOB字段,只是方便需要使用这个BO的人用GET、SET 处理这个巨长的CLOB字段
------------
xdocLet生成的XML文件:
--------------------
insert的代码:
-----------------
注:Weblogic必须使用weblogic.jdbc.vendor.oracle.OracleThinClob
---------------------
读取CLOB字段:
---------------
更新这个字段的代码:
![](http://www.blogjava.net/buaacaptain/aggbug/57616.html)
现在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(); } } |
相关推荐
下面将讨论解决dblink_clob字段异常的解决方案。 什么是dblink? DBLink是Oracle数据库中的一种机制,允许用户从一个数据库实例访问另一个数据库实例中的数据。DBLink提供了一种方式来访问远程数据库中的数据,而...
在本文中,我们将讨论如何将 SQL Server 中的 Image 类型数据导出到 Oracle 的 CLOB 字段中。 Image 类型在 SQL Server 中的应用 在 SQL Server 中,Image 类型用于存储二进制大对象(BLOB),如图像、音频、视频...
接下来,我们来讨论Clob字段。Clob代表Character Large Object,是一种数据库字段类型,用于存储大文本数据,如长篇文章、HTML文档或XML文件。与BLOB(Binary Large Object)不同,Clob专门用于字符数据。 在数据库...
在这个例子中,`your_clob_index_name`是你需要重建的索引名,`your_table`是包含CLOB字段的表名,而`clob_column`是CLOB类型字段的列名。 接下来,我们讨论用户表空间索引空间的修复。当表空间的空间不足或者需要...
这个压缩包可能包含了用于演示或测试CLOB字段如何在Oracle数据库中创建、查询、更新和删除的脚本或应用程序。 在描述中同样提到了"test-clob.rar",这意味着文件的内容可能是一系列针对CLOB类型的实验或实例,用于...
此外,对于频繁读取的CLOB字段,可以考虑将其索引或部分内容缓存。 最后,虽然Hibernate提供了便捷的接口,但在处理BLOB和CLOB时,还需要了解所用数据库的特性,因为不同的数据库可能有不同的限制和最佳实践。例如...
在Delphi中,你可以使用TSQLiteDataset或类似组件来过滤CLOB字段。这里是一个示例: ```delphi var Dataset: TSQLiteDataset; begin Dataset := TSQLiteDataset.Create(nil); Dataset.Connection := ...
当Java应用程序需要将`String`数据存入Oracle数据库的CLOB字段时,可以使用JDBC的`PreparedStatement`和`setClob()`方法。例如: ```java String content = "这是要存储的字符串"; PreparedStatement pstmt = ...
其中,`imageData`是Blob字段,用于存储图片数据。 3. **读取图片并转换为Blob** 使用`FileInputStream`读取图片文件,然后将其转换为`Blob`对象。可以使用`PreparedStatement`的`setBlob()`方法将Blob对象设置为...
在JPA中,这些大数据字段通常被映射为Blob(二进制大对象)或Clob(字符大对象)。映射过程涉及到定义实体类中的属性,并使用特定的JPA注解(例如`@Lob`)来指示这些属性应如何与数据库中的大数据字段对应。通过这样...
在Liferay数据库模型中,CLOB字段可以作为字段类型出现,而在服务构建器生成的接口中,通常会有对应的getter和setter方法来操作CLOB数据。例如,`getHtmlContent()`和`setHtmlContent(Clob htmlContent)`。在业务...
具体做法是,查找并修改所有使用`oracle.sql.CLOB`或`empty_clob()`的地方,确保在操作CLOB字段时不会将达梦视为Oracle。示例代码如下: ```java // 原始代码 boolean isoracle = (statement.getDBType()).equals(...
har(max)\nvarchar(max)类型的引入大大的提高了编程的效率,可以使用字符串函数对CLOB类型进行操 作,这是一个亮点。但是这就引发了对varchar和char效率讨论的老问题。到底如何分配varchar的数据,是否 会出现大规模...
"源码"标签暗示了讨论可能涉及实际的Java代码示例,展示如何在实体类中应用Hibernate注解。"工具"标签则指出Hibernate作为一种广泛使用的开发工具,它的注解机制是Java开发者必备的知识之一。 【文件名称】:...
在"LOB字段的操作.txt"中,可能涵盖了BLOB(二进制大对象)、CLOB(字符大对象)和NCLOB(国家字符集的大对象)的插入、更新、读取和删除方法,以及如何优化LOB字段的性能。 4. **JDBC调用存储过程**:"jdbc调存储...
标题和描述提及的PDF文件主要讨论如何在PowerBuilder(PB)9.0和Oracle 9i数据库中处理多媒体数据,特别是利用Oracle的包和PB对LOB(Large Object)数据类型进行操作。文章作者通过分析和实践,提出了在Oracle数据库...
本文档是一份关于Oracle学习的笔记,旨在帮助读者掌握Oracle数据库的基本操作和新特性。 首先,我们从创建表开始,这是数据库管理的基础。创建表涉及到定义表的结构,包括列名、数据类型、约束条件等。例如,创建表...
以下将详细讨论这些差异: 1. **组函数使用规则**: Oracle 对于使用组函数(如 COUNT、SUM 等)有严格的规定。如果在 SELECT 语句中使用组函数,那么其他列要么也应用组函数,要么出现在 GROUP BY 子句中。例如,...
2. 表的创建:使用CREATE TABLE语句可以创建数据库表,需要指定表名、字段名以及字段的数据类型。在面试中,可能会涉及如何创建带主键、外键、唯一约束的表。 3. 索引:索引可以加速查询,Oracle支持B树索引、位图...
此外,Oracle数据库提供的大数据字段支持,如BLOB和CLOB类型,也可以用于存储航空物探的大规模二进制或文本数据。同时,Oracle的事务处理能力、并发控制和数据完整性机制,确保了在高并发环境下数据的一致性和可靠性...