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 而言),因此这可能与如果您有多字节字符,则为实际大小。
我有一个带有 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 而言),因此这可能与如果您有多字节字符,则为实际大小。