`

Oracle中的Raw类型解释

阅读更多
RAW,类似于CHAR,声明方式RAW(L),L为长度,以字节为单位,作为数据库列最大2000,作为变量最大32767字节。
LONG RAW,类似于LONG,作为数据库列最大存储2G字节的数据,作为变量最大32760字节
建表操作:
create table raw_test (id number, raw_date raw(10));
插入raw数据操作:
insert into raw_test values (1, hextoraw('ff'));
insert into raw_test values (utl_raw.cast_to_raw('051'));
删除表操作:
drop table raw_test;
当使用HEXTORAW时,会把字符串中数据当作16进制数。而使用UTL_RAW.CAST_TO_RAW时,直接把字符串中每个字符的ASCII码存放到RAW类型的字段中.

可以使用dump函数,查询存储情况:
select id,raw_date, dump(raw_date, 16) dump_raw from raw_test;

Oracle中RAW和Varchar2常用的两个转换函数                                  
1. UTL_RAW.CAST_TO_RAW
该函数按照缺省字符集(一般为GB2312),将VARCHAR2字符串转换为RAW。
insert into cmpp_submit (dest_terminal_id,msg_content) values('13001081371',UTL_RAW.CAST_TO_RAW('您好!'));
2. UTL_RAW.CAST_TO_VARCHAR2
该函数按照缺省字符集合(一般为GB2312),将RAW转换为VARCHAR2。
select UTL_RAW.CAST_TO_VARCHAR2(msg_content) from cmpp_deliver;

其实RAW和VARCHAR是类似的,只是存储在RAW里的是二进制值,在任何时候不会做自动的字符集转换,这是RAW和VARCHAR的不同,RAW只是一种外部类型,其内部存储是VARRAW
VARCHAR的Oracle内部定义是:struct { ub2 len; char arr[n] }
VARRAW的ORACLE内部定义是: struct { ub2 len; unsigned char arr[n] }
分享到:
评论

相关推荐

    oracle LongRaw 转 Blob

    在Oracle数据库中,LongRaw和Blob都是用于存储大对象(LOB)的数据类型,但它们有各自的特点和适用场景。在某些情况下,可能需要将LongRaw字段转换为Blob字段,这通常是因为Blob提供更好的管理和处理大型二进制数据...

    oracle LongRaw 转 Blob 源码

    LongRaw类型是Oracle的原始数据类型,用于存储二进制大对象,而Blob类型则是二进制大型对象,更适合存储大量的二进制数据,如图片、文档等。在某些情况下,由于LongRaw不支持某些高级LOB操作,如索引和部分更新,...

    Oracle 存储 RAW

    ### Oracle 存储 RAW #### 一、概述 在数据库管理领域,Oracle 数据库系统以其高性能、高可靠性和丰富的功能而著称。为了进一步优化性能,Oracle 支持使用裸设备(RAW)来存储数据。裸设备是一种特殊类型的存储...

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

    对于Long和Raw类型的数据,插入和更新操作相对简单,只需将文本或二进制数据作为字符串或字节数组传入SQL语句即可。在读取Long字段时,由于其大小可能很大,需要注意处理可能的性能问题。 总之,Oracle数据库中的...

    sql server 和oracle 中数据类型的区别

    例如,`binary(50)`表示存储50个字节的二进制数据,在Oracle中对应的类型为`RAW(50)`。 3. **bit**: 用于存储布尔值或单个位的信息,在SQL Server中占1个字节,而Oracle中的对应类型为`NUMBER(2)`。 4. **char**: ...

    oracle基本数据类型

    Oracle 中的二进制类型包括 raw、long raw、blob、clob、nclob 等。 * raw(n):可变长二进制数据,最大长度限制是 2000 字节。 * long raw:无可变长二进制数据,最大长度限制是 2GB。 * blob:大型对象,用于保存...

    Oracle与.Net 数据类型映射

    以下是对"Oracle与.Net 数据类型映射"这一主题的详细解释。 首先,Oracle数据库提供了一系列的数据类型来存储不同类型的数据,例如: 1. **数值类型**:包括NUMBER(可以存储整数和小数)、INTEGER(等同于 NUMBER...

    Oracle与DB2数据类型分类对应说明

    DB2/400 提供 VARCHAR 和 CLOB 与 Oracle 中的 RAW 和 LONG RAW 相对应。Oracle 也支持大对象:BLOB、CLOB、NCLOB 等。例如,Oracle 中的 BLOB 和 CLOB 可以提供 4GB 的空间,而 DB2/400 中的 BLOB 和 CLOB 只能存放...

    sqlserver-oracle 数据类型对照

    - `binary`和`varbinary`在SQL Server中分别对应Oracle的`RAW`类型,用于存储二进制数据。 - `bit`在SQL Server中没有直接对应的Oracle数据类型,但可以近似用单字节的`NUMBER(1)`表示。 - `datetime`和`...

    Oracle与DB2数据类型的对应说明书

    DB2/400提供VARCHAR和CLOB与Oracle中的RAW和LONG RAW相对应。Oracle也支持大对象:BLOB、CLOB、NCLOB等。DB2/400中的BLOB和CLOB只能存放2GB的数据,而Oracle中的BLOB和CLOB可以提供4GB的空间。 五、ROWID类型 ...

    oracle-java数据类型1

    在实际开发中,了解这些类型及其对应关系至关重要,因为它可以帮助开发者正确地在 Java 应用程序中处理 Oracle 数据库中的数据。例如,当你从数据库查询数据时,需要知道如何将 Oracle 的 `NUMBER` 类型转换为 Java ...

    oracle新手入门指导之四——ORACLE数据类型 .txt

    本文将详细介绍Oracle中的各种数据类型及其特性,帮助初学者更好地理解如何根据不同的应用场景选择合适的数据类型。 #### 1. 字符类型 - **CHAR(n)**:固定长度字符类型,`n`范围为1到2000,默认情况下,如果未...

    Oracle中CLOB类型文字处理代码

    在Oracle数据库中,CLOB(Character Large Object)是一种用于存储大量文本数据的数据类型,如XML文档、长篇文章或任何其他非二进制的大型数据。本文将深入探讨Oracle中的CLOB类型文字处理,以及如何在实际操作中...

    oracle数据类型.doc

    Oracle 数据类型是数据库管理系统Oracle中的核心元素,它们决定了如何存储和处理各种数据。在Oracle中,数据类型可以分为基本数据类型、对象数据类型和大型对象数据类型。以下是对Oracle主要数据类型的详细说明: 1...

    Oracle各种数据类型的介绍,适合中高级编程开发人员

    本文将详细介绍Oracle中的几种常见数据类型,并针对每种类型的特点进行分析,旨在帮助中高级编程开发人员以及初学者更好地理解和使用Oracle数据类型。 #### Character 类型 - **CHAR**: 是一种固定长度的字符类型...

    oracle和sql数据类型

    Oracle 和 SQL 数据类型是数据库管理系统中用于定义和存储数据的基础组件。它们决定了数据的结构、大小以及如何进行处理。以下是两种数据库系统中主要数据类型的详细比较: **Oracle 数据类型** 1. **Char**: Char...

    mssql2oracle类型对比

    - `timestamp`: 存储时间戳信息,等同于Oracle中的`RAW`类型。 - **Oracle**: - `ROWID`: 用于唯一标识行的位置,SQL Server中没有直接对应的类型,可以考虑使用`identity`列类型。 - `CURRVAL`和`NEXTVAL`: ...

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

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

Global site tag (gtag.js) - Google Analytics