熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> Oracle >> 正文

Oracle中的Raw類型解釋

2013-11-13 15:29:32  來源: Oracle 

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


From:http://tw.wingwit.com/Article/program/Oracle/201311/16803.html
  • 上一篇文章:

  • 下一篇文章:
  • 推薦文章
    Copyright © 2005-2013 電腦知識網 Computer Knowledge   All rights reserved.