我有一个带有Clob列的表。 我想创建一个报告,告诉我每组X CLOB大小存在多少行
例如,如果步骤是100K:
Row Count Clob size
----------- -------------
10 0k - 100K
5 100k - 200K
3 200k - 300K
如何查询并动态设置100个字符或100K字符的步长?
答案 0 :(得分:1)
这样的事情应该有效(nb。我已经使用了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而言),因此如果您有多字节字符,则可能与实际大小不同