long raw类型是oracle数据库的一个老的数据类型,属于不推荐使用的类型。前些日子做数据迁移,发现保存图片信息使用的是long raw类型,这种类型的数据很难使用sql进行操作。
假设table1.pic是long raw类型的列,在table2同样创建一个long raw列table2.pic,想把table1的数据复制到table2,结果发现,这根本就是一个不可能完成的任务。无论是使用insert还是update,都无法把long raw数据从table1迁移到table2。
insert into table2 (id,pic) select id, pic from table1; --报错
insert into table2 (id) select id from table1; --成功
commit;
update table2 set table2.pic =
(select table1.pic from table1 where table1.id = table2.id); --报错
后来通过网上资料得知,oracle推荐使用blob类型代替long raw类型,在实际应用中,可以通过alter table table1 modify column pic blob;把long raw类型直接转换成blob类型,也可以把long raw类型的列数据copy到另外一个blob类型的列。
具体到前面的需求,可以创建table2.pic列为blob类型,然后就可以进行数据迁移了。
insert into table2 (id,pic) select id, to_lob(pic) from table1;
update table2 set table2.pic =
(select to_lob(pic) from table1 where table1.id = table2.id);
这两个语句都可以成功执行,有趣的是,to_lob这个函数只能用在insert或者update语句的select子句中,如果在独立的select语句中使用,是要报错的。
分享到:
相关推荐
Oracle数据库中,LongRaw和Blob是两种不同的数据类型,它们分别用于存储大对象(LOB)数据。LongRaw类型是Oracle的原始数据类型,用于存储二进制大对象,而Blob类型则是二进制大型对象,更适合存储大量的二进制数据...
本文将深入探讨SQL Server与Oracle中的数据类型区别,并通过具体的例子来说明这两种系统之间的转换方法。 ### SQL Server 数据类型 SQL Server 是微软开发的一款关系型数据库管理系统,它支持多种数据类型,可以...
在数据库领域,随着技术的发展,Oracle不断优化其数据存储能力,引入了CLOB(Character Large Object)和BLOB(Binary Large Object)等数据类型,以取代早期版本中使用的Longraw类型。Longraw类型主要应用于Oracle ...
DB2/400提供VARCHAR和CLOB与Oracle中的RAW和LONG RAW相对应。Oracle也支持大对象:BLOB、CLOB、NCLOB等。DB2/400中的BLOB和CLOB只能存放2GB的数据,而Oracle中的BLOB和CLOB可以提供4GB的空间。 五、ROWID类型 ...
《Oracle与SQL Server数据类型对应关系深度解析》 在数据库领域,Oracle与SQL Server作为业界广泛使用的两大数据库管理系统,各自拥有独特的数据类型体系。当在两者之间进行数据迁移、复制或整合时,理解并掌握其...
例如,文章中提到了Oracle和SQL Server在数据类型上的差异,如Oracle的LONG RAW数据类型对应SQL Server的image数据类型,而Oracle的CLOB数据类型对应SQL Server的text数据类型。 2. 数据迁移方法:文章可能介绍了从...
在IT行业中,数据库管理系统是...总的来说,理解不同数据库系统之间的数据类型对应关系对于开发跨平台的数据库应用至关重要,这有助于确保数据正确地在MySQL和Oracle之间迁移,同时在Java代码中正确地处理这些数据。
MySQL 和 Oracle 是两种广泛使用的数据库管理系统(DBMS),它们各自具有独特的数据类型系统来存储不同类型的数据。在进行跨数据库操作或者迁移时,了解这两种数据库之间的数据类型差异是至关重要的。以下是对MySQL...
了解其基本数据类型是学习Oracle数据库的基础。Oracle提供了多种内置数据类型,以满足不同类型的存储需求。下面将对这些数据类型进行详细阐述。 1. 字符串类型 - CHAR:固定长度的字符串类型,即使输入的字符串...
本篇文章将详细阐述Microsoft SQL Server 2000与Oracle数据库中的数据类型对比及其转换对应关系,帮助读者更好地完成数据迁移任务。 #### 1. 整数类型 - **SQL Server 2000**: - `bigint`: 存储非常大的整数值,...
Oracle支持更多的数据类型,如BFILE、RAW、LONG等,而MySQL则主要使用标准的SQL数据类型。在迁移过程中,我们需要确保源数据库中的数据类型能在目标数据库中找到对应的映射。此外,Oracle的PL/SQL和MySQL的存储过程...
本篇文章主要探讨了 Oracle 数据类型与 DB2/400 数据类型的分类对应关系,帮助用户在进行数据迁移、集成或跨平台开发时更好地理解和处理数据类型转换。 1. **日期和时间类型**: - Oracle 的 `DATE` 类型包含年、...
在数据库系统中,数据类型的转换是至关重要的,尤其是在不同数据库平台之间进行数据迁移或集成时。本主题将详细探讨如何将Oracle数据库中的表定义映射到DB2数据库的数据类型。Oracle和DB2作为两种广泛使用的数据库...
从SQL Server向Oracle数据库迁移的过程中,涉及到的数据类型转换、序列(sequence)及触发器(trigger)的实现方式是关键的技术点。以下是对这些知识点的详细解析: ### 数据类型转换 #### Oracle与SQL Server的数据...
- Oracle中没有直接对应的位类型,但可以使用其他数据类型如`RAW`或`BINARY`来实现类似功能。 6. 日期和时间类型 - MySQL的`DATE`、`TIME`、`DATETIME`和`TIMESTAMP`分别表示日期、时间、日期时间以及带时区的...
数据类型的转换是Oracle向Sybase迁移过程中首先需要解决的问题之一。不同数据库系统间的数据类型并不总是完全一致,因此必须进行适当的映射以确保数据完整性和准确性。以下是一些常见的数据类型及其转换方式: - **...