我有一张表,我们称它为附件。Oracle函数以兆字节返回clob的大小
我有一个附件id和附件filedata。然而,不幸的是,当文件上传时,文件的大小永远不会放入文件大小的字段.....所以我有一点困难。
有没有一种方法,我可以做一个查询来计算的大小。以兆字节为单位的文件大小和b。获取所有文件的总大小。
此外,我也知道,如果我有大量的附件,那么它会是一个缓慢的查询。所以我会在我的webapp中缓存查询结果。 (通过cron每30分钟刷新一次)
任何帮助将非常感激。
谢谢!
我有一张表,我们称它为附件。Oracle函数以兆字节返回clob的大小
我有一个附件id和附件filedata。然而,不幸的是,当文件上传时,文件的大小永远不会放入文件大小的字段.....所以我有一点困难。
有没有一种方法,我可以做一个查询来计算的大小。以兆字节为单位的文件大小和b。获取所有文件的总大小。
此外,我也知道,如果我有大量的附件,那么它会是一个缓慢的查询。所以我会在我的webapp中缓存查询结果。 (通过cron每30分钟刷新一次)
任何帮助将非常感激。
谢谢!
对于那些有兴趣,我找到了解决办法:
create or replace function filesize_in_mb(filedata in blob) return float is
Result float;
begin
select ROUND(((dbms_lob.getlength(filedata)/1024/1024) * 2), 2)
into Result
from dual;
return Result;
end filesize_in_mb;
我乘以2,因为我使用的数据库是在utf-16中。
,并呼吁它:
SELECT filesize_in_mb(a.filedata) as filesize FROM file_attachment a
所有,而其实很简单! :-)
非常感谢:-) – Flukey 2010-08-12 12:18:19