Oracle raw 数据类型
RAW,类似于CHAR,声明方式RAW(L),L为长度,以字节为单位,作为数据库列最大2000,作为变量最大32767字节。
LONG RAW,类似于LONG,作为数据库列最大存储2G字节的数据,作为变量最大32760字节
插入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] }
相关文档:
为了做虚拟机,需要将服务器上的11g的用户的完整数据导出来。而虚拟机上的oracle10g的,直接导出来,无法导入到虚拟机。
所以,试着用10g的客户端来导出数据,
用命令:exp exoa/*****@exoa1 file=20100526.dmp grants=y full=y
执行后,系统提示:
EXP-00008:遇到 ORACLE错误1406
&nb ......
什么是合并多行字符串(连接字符串)呢,例如:
SQL> desc test;
Name Type Nullable Default Comments
------- ------------ -------- ------- --------
COUNTRY VARCHAR2(20) Y &nb ......
author:skate
time:2010-05-26
Oracle DBA 笔试题
(答题时间60分钟)
网上看见一篇DBA的面试题,觉得挺实用的,而不像有的面试弄得很虚,很理想化。
Unix/Linux题目
1、如何查看主机cpu,内存、IP和磁盘空间?
2、你常用的进程管理、主机性能察看命令有哪些?
3、建立组dba和该组下用户oracle,默认shell为bash。 ......
一. 为表创建自增长自段有两种,一种是不同的表使用各自的Sequence,方法如下:
1、在Oracle sequence首先创建sequence create sequence seq_idminvalue 1start with 1increment by 1cache 20; 2.在你的hbm.xml中的配置 seq ......