首页 > 代码库 > Oracle raw类型
Oracle raw类型
RAW(size):长度为size字节的原始二进制数据,size的最大值为2000字节;
RAW类型好处:在网络中的计算机之间传输 RAW 数据时,或者使用 Oracle 实用程序将 RAW 数据从一个数据库移到另一个数据库时,Oracle 服务器不执行字符集转换。
RAW,类似于CHAR,声明方式RAW(L),L为长度,以字节为单位,作为数据库列最大2000,作为变量最大32767字节。
LONG RAW,类似于LONG,作为数据库列最大存储2G字节的数据,作为变量最大32760字节;
操作:
create table raw_test (id number, raw_date raw(10)); insert into raw_test values (1, hextoraw(‘ff‘)); insert into raw_test values (2,UTL_RAW.cast_to_raw(‘abc‘)); insert into raw_test values (3,UTL_RAW.cast_to_raw(‘你好你你的‘));SELECT r.*,DUMP(r.raw_date),RAWTOHEX(r.raw_date),UTL_RAW.CAST_TO_VARCHAR2(r.raw_date) FROM raw_test r;-----------------------------------------------------------------------------ID RAW_DATE DUMP(R.RAW_DATE) RAWTOHEX(R.RAW_DATE) UTL_RAW.CAST_TO_VARCHAR2(R.RAW1 FF Typ=23 Len=1: 255 FF 2 616263 Typ=23 Len=3: 97,98,99 616263 abc3 C4E3BAC3C4E3C4E3B5C4 Typ=23 Len=10: 196,227,186,195,196,227,196,227,181,196 C4E3BAC3C4E3C4E3B5C4 你好你你的
这里用到了几个函数:
1. UTL_RAW.CAST_TO_RAW:该函数按照缺省字符集(一般为GB2312),将VARCHAR2字符串转换为RAW,直接把字符串中每个字符的ASCII码存放到RAW类型的字段中。
2.UTL_RAW.CAST_TO_VARCHAR2:该函数按照缺省字符集合(一般为GB2312),将RAW转换为VARCHAR2。
3.HEXTORAW(string):当使用HEXTORAW时,会把字符串中数据当作16进制数,String中的每两个字符表示了结果RAW中的一个字节。
4.RAWTOHEX(rawvalue):将RAW类数值rawvalue转换为一个相应的十六进制表示的字符串. rawvalue中的每个字节都被转换为一个双字节的字符串. RAWTOHEX和HEXTORAW是两个相反的函数.
其实RAW和VARCHAR是类似的,只是存储在RAW里的是二进制值,在任何时候不会做自动的字符集转换,这是RAW和VARCHAR的不同,RAW只是一种外部类型,其内部存储是VARRAW
Oracle raw类型
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。