13_long和lob类型处理

本文介绍了Oracle数据库中的大字段类型,包括long和LOB(BLOB,CLOB,NLOB)的区别及使用建议。详细展示了long类型表和LOB类型表的创建、数据插入与查询方法,并提供了long类型向LOB类型转换的实操步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

oracle系统中常说的大字段,有longLOB(BLOB,CLOB,NLOB)类型。

Oracle 6/7版本支持LONG类型,Oracle 8时被LOB取代。

建议不要创建带long类型的表,应使用LOB字段。

Tom大师对longLOB对比总结,如图:

 

如果有遇到long怎么办,可以参考以下实操:

--创建long类型表

create table test_long_t

 (

   t_long_name   varchar2(10),

   t_long_column long

 );

 insert into test_long_t values('name_aaa','aaaaaaaaa'); --写入

select t_long_column from test_long_t where t_long_name = 'name_aaa'; --成功

--创建lob类型表

create table test_lob_t

(

  t_lob_name varchar2(10),

  t_lob_value clob

);

--单独查询LOB方法

select to_char(substr(t_lob_value,1,4000)) from test_lob_t;

--建议:long类型转存lob类型,再数据处理

insert into test_lob_t(t_lob_name,t_lob_value)

select t_long_name,to_lob(t_long_column) from test_long_t;

--用过程处理,可以取更多long/lob类型数据内容

declare

  l_lob varchar2(32767);

  l_long varchar2(32767);

begin

  select t_lob_value into l_lob from test_lob_t where t_lob_name = 'name_aaa';

  dbms_output.put_line(l_lob);

  select t_long_column into l_long from test_long_t where t_long_name = 'name_aaa';

  dbms_output.put_line(l_long);

  --延伸:可以用这种方式写一个函数,这样,传至javaString类型处理

end;

--LOB的使用知多D

1.由于管理和性能原因,LOB数据使用另外一个表空间,不跟表数据放同一个表空间

2.出于i/o性能考虑,默认情况,LOB数据不放在缓冲区缓存中,这样不论是读还是写,都会带来物理i/o,所以尽量减少全量操作LOB数据

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值