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

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


参考资料 

1.Oracle Concepts Oracle DataType中对数据类型的介绍: http://docs.oracle.com/cd/B28359_01/server.111/b28318/datatype.htm#i4146 

2.Oracle JDBC Developer Guid 

  1】work with oracle object type中对对象数据类型在java中的get和set的介绍: http://docs.oracle.com/cd/B28359_01/java.111/b31224/oraoot.htm#autoId0

  2】java stream in JDBC 中对二进制类型通过java获取流然后在os文件系统生成文件的方法介绍。 http://docs.oracle.com/cd/B28359_01/java.111/b31224/jstreams.htm#i1014109 

3.Oracle JDBC API 各数据类型的API介绍: http://download.oracle.com/otn_hosted_doc/jdeveloper/905/jdbc-javadoc/index.html?oracle/sql/NCLOB.html 

一、类型区分 

Long 存储变长的字符数据(2G,向后兼容,不建议使用)

NCLOB 存储单字节的字符数据(4G)

CLOB 存储多字节的字符数据(4G)

BFILE 存储OS文件系统中的二进制文件的指针,文件不存储在数据库里。所以当你将文件插入把BFile字段以后,如果你将电脑中的这个文件删除或者移动存储目录,那么从这个字段就找不到存储的这个文件了。264 - 1 bytes

BLOB 存储二进制数据(4G) 

RAW 存储定长二进制数据(2000byte),需要定义长度,如:create table t(s raw(2000); 

LONG RAW 存储可变长二进制数据(2G,Oracle已不建议使用)。

二、类型在数据库中的使用 

NCLOB 

?
1
2
3
4
5
6
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 

?
1
2
3
4
5
6
7
8
9
10
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  

?
1
2
3
4
5
6
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 

?
1
2
3
4
5
6
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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值