Oracle二进制类型和大对象类型基础

2014-11-24 15:01:40 · 作者: · 浏览: 4
Oracle二进制类型和大对象类型基础
一、类型区分
NCLOB 存储单字节的字符数据
CLOB 存储多字节的字符数据
BFILE 存储OS文件系统中的二进制文件的指针,文件不存储在 数据库里。
BLOB 存储二进制数据
RAW 存储定长二进制数据,需要定义长度,如:
create table t(s raw(2000); 

LONG RAW 存储可变长二进制数据
二、类型在数据库中的使用
NCLOB 

create table t(id int,cont NCLOB); 

Insert into t(id,cont) values(1,’hello’); 

select * from t; 

ID CONT 

------------------------- 

1 hello 

CLOB 同NCLOB。

BLOB 暂未找到能直接插入的值的方法。

BFILE 

Conn lyy/lyy 

Create table bfiletable(id int,obj BFILE); 

Create or replace directory dir AS ‘d:\’; 

Conn / as sysdba 

Grant read directpry dir to lyy; 

Conn lyy/lyy Insert into bfiletable(id,obj) values(1,filename(‘DIR’,’1.jpg’)); 

Select * from filetable; 

ID OBJ 

------------------------------------------------- 

1 filename(‘DIR’,’1.JPG’) 


RAW  

Create table rawtable(id int,obj raw(2000)); 

Insert into rawtable(id,obj) values(1, uti_raw.cast_to_raw(‘hello’)); 

Select * from rawtable; 

ID OBJ 

 ------------------------------------------------- 

 1 68656C6C6F 



LONG RAW 

Create table lrawtable(id int,obj long raw); 

Insert into lrawtable(id,obj) values(1, uti_raw.cast_to_raw(‘hello’)); 

Select * from lrawtable; 

ID OBJ 

------------------------------------------------- 

1 6