对Oracle Raw类型的详细解剖

数据库 Oracle
以下的文章主要研讨的是Oracle Raw类型的实际操作步骤以及在实际操作中的功能的具体体现,以下就是正文的主要内容描述。

以下的文章主要是对Oracle Raw类型的详细解释,我们首先是从RAW的概念讲起的,其不论从那方面都类似于CHAR,其声明的方式为RAW(L),它以L为长度,以相关的字节为单位,作为数据库列最大2000,作为变量最大32767字节。

LONG RAW,类似于LONG,作为数据库列最大存储2G字节的数据,作为变量最大32760字节

建表操作:

 

  1. create table raw_test (id number, raw_date raw(10)); 

插入raw数据操作:

 

  1. insert into raw_test values (1, hextoraw('ff'));  
  2. insert into raw_test values (utl_raw.cast_to_raw('051'));  

 

删除表操作:

 

  1. drop table raw_test; 

当使用HEXTORAW时,会把字符串中数据当作16进制数。而使用UTL_RAW.CAST_TO_RAW时,直接把字符串中每个字符的ASCII码存放到Oracle RAW类型的字段中.

可以使用dump函数,查询存储情况:

 

  1. 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。

 

  1. 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。

 

  1. select UTL_RAW.CAST_TO_VARCHAR2(msg_content) from cmpp_deliver; 

其实RAW和VARCHAR是类似的,只是存储在RAW里的是二进制值,在任何时候不会做自动的字符集转换,这是RAW和VARCHAR的不同,RAW只是一种外部类型,其内部存储是VARRAW

Oracle内部定义是:

  1. struct { ub2 len; char arr[n] } 

VARRAW的ORACLE内部定义是:

  1. struct { ub2 len; unsigned char arr[n] }  

【编辑推荐】

  1. Oracle数据复制如何正确操作?
  2. Oracle建立DBLINK的操作经验总结
  3. Oracle查询记录数在什么环境下会出现问题?
  4. Oracle字符集的查看与修改全集
  5. Oracle 分页和排序功能在数据库中如何实现?

 

责任编辑:佚名 来源: 博客园
相关推荐

2010-04-26 10:24:12

Oracle ASM

2010-04-30 16:58:14

Oracle Raw

2010-04-13 15:49:02

Oracle SGA

2009-11-24 09:39:55

SUSE Linux

2009-10-23 17:35:16

linux进程管理

2010-04-20 11:31:26

Oracle逻辑结构

2010-04-14 10:32:42

Oracle数据

2010-04-27 14:44:31

Oracle存储过程

2010-05-20 14:14:56

2010-04-28 16:53:20

Oracle 函数

2010-03-31 18:56:56

Oracle 数据类型

2010-09-13 14:27:36

2010-07-27 15:02:30

DB2驱动类型

2010-10-08 13:56:32

2010-04-14 14:19:51

Oracle数据库

2010-04-06 13:33:41

Oracle服务

2010-10-26 17:34:03

Oracle索引

2010-03-26 17:17:37

Python特色

2010-07-28 14:16:43

DB2驱动类型

2010-04-15 11:27:46

Oracle备份
点赞
收藏

51CTO技术栈公众号