a我考网

 找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 202|回复: 0

[综合] Oracle辅导:Oracle中的Raw类型解释

[复制链接]
发表于 2012-8-4 13:54:49 | 显示全部楼层 |阅读模式
 RAW,近似于CHAR,声明体例RAW(L),L为长度,以字节为单元,作为数据库列最年夜2000,作为变量最年夜32767字节。   LONG RAW,近似于LONG,作为数据库列最年夜存储2G字节的数据,作为变量最年夜32760字节
, A/ J) p3 A. ?. b; Q4 n! c% |, c  建表操作:
$ U: h( Y9 @# R/ Z5 }5 G0 R  create table raw_test (id number, raw_date raw(10));% D" j5 k  t. \, u9 H  R& T
  插入raw数据操作:6 [! r0 l' ^, G$ N, S* U" g  v
  insert into raw_test values (1, hextoraw('ff'));
1 I% I/ H! G5 T8 ^% [  insert into raw_test values (utl_raw.cast_to_raw('051'));! m) a  ]: O9 ]& t
  删除表操作:: A* J: B3 R2 x- ]5 ^6 E& H0 A
  drop table raw_test;
4 _7 K: j, T) z. d9 e! {  当使用HEXTORAW时,会把字符串中数据算作16进制数。而使用UTL_RAW.CAST_TO_RAW时,直接把字符串中每个字符的ASCII码存放到RAW类型的字段中.
9 H6 s8 d" d7 J4 A! q% b. ?  可以使用dump函数,发芽存储情形:  ?6 ^5 ?- o( T  j( ~
  select id,raw_date, dump(raw_date, 16) dump_raw from raw_test;) z# d! a& N, z  C0 W. e6 Q
  Oracle中RAW和Varchar2常用的两个转换函数
# x, _6 S' S: [+ e& ?  1. UTL_RAW.CAST_TO_RAW" o( A$ O3 {- t0 `7 |- A, q. k! R
  该函数按照缺省字符集(一般为GB2312),将VARCHAR2字符串转换为RAW。
3 T2 r* W( y) i0 a  insert into cmpp_submit (dest_terminal_id,msg_content) values('13001081371',UTL_RAW.CAST_TO_RAW('您好!'));
% H) O& ]' T7 Q$ F- U  a  2. UTL_RAW.CAST_TO_VARCHAR2
9 P2 A7 b8 z- t3 f  该函数按照缺省字符集结(一般为GB2312),将RAW转换为VARCHAR2。$ U; `5 p* q3 k) X+ f8 A- q$ _6 M
  select UTL_RAW.CAST_TO_VARCHAR2(msg_content) from cmpp_deliver;- \0 T/ k" h' l6 V9 j% n
  其实RAW和VARCHAR是近似的,只是存储在RAW里的是二进制值,在任何时辰不会做自动的字符集转换,这是RAW和VARCHAR的分歧,RAW只是一种外部类型,其内部存储是VARRAW9 Q+ i0 A  i/ `$ c3 M$ U
  VARCHAR的Oracle内部界说是:struct { ub2 len; char arr[n] }" f; l' h) a" f
  VARRAW的ORACLE内部界说是: struct { ub2 len; unsigned char arr[n] }
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|Woexam.Com ( 湘ICP备18023104号 )

GMT+8, 2024-6-18 13:31 , Processed in 0.232075 second(s), 21 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表