Oracle、CLOB 大小报告

Oracle, CLOB sizes report

我有一个带有 Clob 列的 table。 我想创建一个报告,告诉我每组 X CLOB 大小

存在多少行

例如步长为100K:

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

如何查询和动态设置100个字符或100K个字符的步长?

像这样的东西应该可以工作(注意。我使用了 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 将 return CLOB 的字符数而不是字节数(对于 BLOB 而言),因此这可能与如果您有多字节字符,则为实际大小。