首 页IT知识库翔宇问吧收藏内容
当前位置:翔宇亭IT乐园IT知识库数据库Oracle

Oracle中的Raw类型解释

减小字体 增大字体 作者:未知  来源:华军资讯  发布时间:2010-02-11 21:02:00

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] }

微信搜索“优雅的代码”关注本站的公众号,或直接使用微信扫描下面二维码关注本站公众号,以获取最新内容。

个人成长离不开各位的关注,你的关注就是我继续前行的动力。

Tags:Raw Oracle

知识评论评论内容只代表网友观点,与本站立场无关!

   评论摘要(共 0 条,得分 0 分,平均 0 分) 查看完整评论
愿您的精彩评论引起共鸣,带来思考和价值。
用户名: 查看更多评论
分 值:100分 90分 80分 70分 60分 40分 20分
内 容:
验证码:
关于本站 | 网站帮助 | 广告合作 | 网站声明 | 友情连接 | 网站地图
本站部分内容来自互联网,如有侵权,请来信告之,谢谢!
Copyright © 2007-2022 biye5u.com. All Rights Reserved.