Oracle二进制类型和大对象类型基础
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