数据库

位置:IT落伍者 >> 数据库 >> 浏览文章

Oracle中的Raw类型解释


发布日期:2024年07月08日
 
Oracle中的Raw类型解释

RAW类似于CHAR声明方式RAW(L)L为长度以字节为单位作为数据库列最大作为变量最大字节

LONG RAW类似于LONG作为数据库列最大存储G字节的数据作为变量最大字节

建表操作:

create table raw_test (id number raw_date raw());

插入raw数据操作:

insert into raw_test values ( hextoraw(ff));

insert into raw_test values (utl_rawcast_to_raw());

删除表操作:

drop table raw_test;

当使用HEXTORAW时会把字符串中数据当作进制数而使用UTL_RAWCAST_TO_RAW时直接把字符串中每个字符的ASCII码存放到RAW类型的字段中

可以使用dump函数查询存储情况

select idraw_date dump(raw_date ) dump_raw from raw_test;

Oracle中RAW和Varchar常用的两个转换函数

UTL_RAWCAST_TO_RAW

该函数按照缺省字符集(一般为GB将VARCHAR字符串转换为RAW

insert into cmpp_submit (dest_terminal_idmsg_content) values(UTL_RAWCAST_TO_RAW(您好!));

UTL_RAWCAST_TO_VARCHAR

该函数按照缺省字符集合(一般为GB将RAW转换为VARCHAR

select UTL_RAWCAST_TO_VARCHAR(msg_content) from cmpp_deliver;

其实RAW和VARCHAR是类似的只是存储在RAW里的是二进制值在任何时候不会做自动的字符集转换这是RAW和VARCHAR的不同RAW只是一种外部类型其内部存储是VARRAW

VARCHAR的Oracle内部定义是:struct { ub len; char arr[n] }

VARRAW的ORACLE内部定义是: struct { ub len; unsigned char arr[n] }

               

上一篇:数据库恢复实例

下一篇:更改Oracle数据库的SID