oracle中将raw类型转化,对Oracle Raw常见类型的解释

我们今天主要向大家介绍的是Oracle Raw常见类型的解释,我们都知道RAW,其与CHAR十分类似,我们对其的声明方式Oracle 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;

其实Oracle 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 Raw类型解释的描述,希望会给你带来一些帮助在此方面。

【编辑推荐】

【责任编辑:孙巧华 TEL:(010)68476606】

点赞 0

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值