参考资料
1.Oracle Concepts Oracle DataType中对数据类型的介绍: 外链网址已屏蔽;
2.Oracle JDBC Developer Guid
1】work with oracle object type中对对象数据类型在java中的get和set的介绍: 外链网址已屏蔽
2】java stream in JDBC 中对二进制类型通过java获取流然后在os文件系统生成文件的方法介绍。 外链网址已屏蔽;
3.Oracle JDBC API 各数据类型的API介绍: 外链网址已屏蔽;
一、类型区分
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