2015-08-20 38 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而言),所以如果您有多字節字符,它可能與實際大小不同。