2015-08-20 69 views
0

我有一个Clob列的表。 我想创建一份报告,告诉我有多少行每个组X CLOB大小Oracle,CLOB大小报告

例如,如果步长为100K的存在:

Row Count Clob size 
----------- ------------- 
10   0k - 100K 
5   100k - 200K 
3   200k - 300K 

如何查询和动态设置步骤大小由100个字符或100K字符?

回答

1

像这样的东西应该工作(注:我已经使用了10KB的块;你需要修改,以你是什么后大小的块。):

select row_count, 
     clob_size_group||' - '||(clob_size_group + 10) clob_size_group 
from (select count(*) row_count, 
       floor((dbms_lob.getlength(clob_col)/1000) -- kb 
        /10)*10 clob_size_group -- separate into groups of 10kb 
     from your_table 
     group by floor((dbms_lob.getlength(clob_col)/1000) 
        /10)*10) 
order by clob_size_group; 

此外,值得注意的是, dbms_lob.getlength将返回CLOB的字符数,而不是字节数(对于BLOB而言),所以如果您有多字节字符,它可能与实际大小不同。