开发者博客:www.developsearch.com
通过临时表从DBLink中获取Blob对象
做系统集成时,通过Database Link共享数据是不错的选择。不过真正使用DBLink时却碰到一个不小的问题:从远程数据库上查询Blob字段时总返回ORA-22992错误,如下:
select blobcolumn from remoteTable@dl_remote;
ORA-22992: 无法使用从远程表选择的 LOB 定位器
查找了一下解决方法,有人提出了采用物化视图可以解决这个问题。物化视图唯一的缺陷在于同步机制的问题,如果同步时间设置过短,则占用大量的系统资源,给服务器带来极大的压力;如果设置时间过长,前台用户不可接受。
后来还是AskTom给出了极好的解决方案:使用全局临时表。
SQL> create global temporary table foo ( X BLOB ) on commit delete rows; Table created SQL> insert into foo select blobcolumn from remoteTable@dl_remote where rownum = 1; 1 row inserted SQL>
插入本地临时表之后,在本地的操作就没有任何问题了。
至于为什么临时表可以直接插入,而永久表为什么不能插入,本人未做具体研究,Tom也没有说明。
BLOB、CLOB、LONG、LongRaw数据类型
LONG: 可变长的字符串数据,最长2G,LONG具有VARCHAR2列的特性,可以存储长文本一个表中最多一个LONG列
LONG RAW: 可变长二进制数据,最长2G
CLOB: 用来存储单字节的字符数据
NCLOB: 用来存储多字节的字符数据
BLOB: 用于存储二进制数据
BFILE: 存储在文件中的二进制数据,这个文件中的数据只能被只读访。但该文件不包含在数据库内。
CLOB,NCLOB,BLOB都是内部的LOB(Large Object)类型,最长4G,没有 LONG只能有一列的限制
我要保存图片、文本文件、Word文件各自最好用哪种数据类型?
--BLOB最好,LONG RAW也不错,但Long是oracle将要废弃的类型,因此建议用LOB。
注意:cob类型的不能通过dblink来访问,所以如果保存图片还是用long raw比较要些
相关推荐
在数据库领域,随着技术的发展,Oracle不断优化其数据存储能力,引入了CLOB(Character Large Object)和BLOB(Binary Large Object)等数据类型,以取代早期版本中使用的Longraw类型。Longraw类型主要应用于Oracle ...
在数据库管理中,存储非结构化数据...综上所述,`CLOB`和`BLOB`都是在Oracle中存储图片的有效方法,具体选择哪种方式取决于应用场景和需求。`ClobAndBlob`工具提供了一种便捷的方式来体验和比较这两种方式的使用效果。
"AnySQL_net » Blog Archive » 如何将BLOB的内容转到LONG RAW中.html"这篇文章可能会探讨如何在Oracle中将Blob数据转换为LONG RAW类型,LONG RAW是Oracle另一种存储大对象的方式,但只适用于二进制数据。...
- **选择LKM**:使用LKM SQL to SQL BTL(Jython),这个Knowledge Module(KM)能将源数据中的BLOB值同步到目标LONGRAW。 - **选择IKM**:选择IKM SQL NULL,可能用于处理空值或无映射的字段。 - **接口实现**:...
在Oracle数据库中,有多种数据类型用于存储不同类型的数据,其中包括Long、Raw和Blob。这些字段类型各有其特性和用途,下面我们将详细探讨它们,并通过一个简单的示例来展示如何在Oracle数据库中对这些类型进行读写...
在Oracle数据库中,有多种数据类型用于存储不同类型的数据,其中包括Long、Raw和Blob。这些字段类型各有其特性和用途。 1. Long类型:Long数据类型用于存储大文本数据,如用户简历(EMP_DESCLONG)。它能存储的最大...
在ORACLE数据库中,有多种数据类型用于存储不同类型的值,包括VARCHAR2、LONG、RAW以及BLOB。这些数据类型在处理不同类型的数据时各有特点,下面将详细解释它们的用法,并提供相应的读写示例。 1. VARCHAR2:这是...
### Struts2框架介绍 Struts2是一个基于Java语言...同时,对于未来技术选型,Oracle数据库推荐优先考虑使用CLOB和BLOB类型来存储大型数据,因为这些类型比LONG类型拥有更好的特性,例如更大的容量和更好的操作灵活性。
7. **LONG RAW**:与LONG类似,但用于存储可变长度的二进制数据,最大长度同样为2GB。同样,它也被BLOB等类型替代。 8. **BLOB**:用于存储大型二进制对象,如图像、视频,最大长度可达4GB。数据存储在数据库内部,...
本示例主要探讨了三种特定的数据类型:Long、Raw和Blob,以及如何在数据库中对它们进行插入(INSERT)、更新(UPDATE)和查询(SELECT)操作。以下是关于这些字段类型及其使用方法的详细说明: 1. VARCHAR2(20):这...
- LONGBLOB和LONGTEXT:存储大型对象,Oracle中对应BLOB和CLOB。 - MEDIUMBLOB和MEDIUMINT:介于BLOB/TINYBLOB与LONGBLOB/INT之间,Oracle没有直接对应,可用BLOB或NUMBER替代。 - MEDIUMTEXT:对应Oracle的CLOB...
5. LONG: 用于存储长字符串,最大长度可达 2GB,但不支持字符串搜索,已被 BLOB、CLOB 和 NCLOB 等大对象类型逐渐取代。 6. RAW(n) 和 LONG RAW: 二进制数据类型,RAW 用于存储较小的二进制文件,最大长度为 2000 ...
DB2/400提供VARCHAR和CLOB与Oracle中的RAW和LONG RAW相对应。Oracle也支持大对象:BLOB、CLOB、NCLOB等。DB2/400中的BLOB和CLOB只能存放2GB的数据,而Oracle中的BLOB和CLOB可以提供4GB的空间。 五、ROWID类型 ...
- **LONG**: 用于存储大量文本数据,但现代实践中,一般推荐使用BLOB或CLOB代替。 2. **数值型数据类型**: - **NUMBER**: 最通用的数值类型,可以表示整数和浮点数,可以指定精度(总位数)和刻度(小数位数)。...
DB2/400 提供 VARCHAR 和 CLOB 与 Oracle 中的 RAW 和 LONG RAW 相对应。Oracle 也支持大对象:BLOB、CLOB、NCLOB 等。例如,Oracle 中的 BLOB 和 CLOB 可以提供 4GB 的空间,而 DB2/400 中的 BLOB 和 CLOB 只能存放...
- **BLOB (Binary Large Object)**:与Oracle 7中的`LONGRAW`类型类似,用于存储无结构的二进制数据。BLOB数据在存储时不进行任何解码,保持原始形式。 - **BFILE (Binary File)**:提供对存储在Oracle数据库之外的...
支持的数据类型包括:NUMBER, CHAR, VARCHAR2, NCHAR,NVARHCAR2, LONG, DATE, RAW, LONG RAW, BLOB, CLOB, TIMESTAMP (9i+) , BINARY FLOAT, BINARY DOUBLE (10g+) 导出的数据格式包括纯文本和DMP文件两种。以纯...
3. **TEXT和IMAGE列限制**:每个复制表最多允许一个TEXT或IMAGE类型的列,且该类型会被映射为Oracle的LONG RAW。 4. **DATETIME映射问题**:SQL Server的datetime数据类型在Oracle中会被映射为char4,这可能造成...
- **LONG RAW**:与`LONG`类似,用于存储二进制数据,最大长度同样为2GB。同样不建议使用。 - **BLOB**:二进制大对象类型,最大长度为4GB,用于存储图像、声音等非文本数据。 - **CLOB**:字符大对象类型,最大长度...