Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/77.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/database/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql Oracle函数返回clob的大小(以MB为单位)_Sql_Database_Oracle - Fatal编程技术网

Sql Oracle函数返回clob的大小(以MB为单位)

Sql Oracle函数返回clob的大小(以MB为单位),sql,database,oracle,Sql,Database,Oracle,我有一张桌子,我们叫它附件吧 我有一个附件id和附件文件数据。然而,不幸的是,当上传文件时,文件的大小从来没有被放入文件大小字段……所以我有点尴尬 有没有一种方法可以通过查询来计算a的大小。a文件大小以兆字节为单位,b文件大小以兆字节为单位。获取所有文件的总大小 此外,我还意识到,如果我有大量的附件,那么这将是一个缓慢的查询。因此,我将在我的webapp中缓存查询结果。(通过cron每隔30分钟左右刷新一次) 任何帮助都将不胜感激 谢谢 希望这对您有所帮助- 希望这对你有所帮助- 对于那些感兴趣

我有一张桌子,我们叫它附件吧

我有一个附件id和附件文件数据。然而,不幸的是,当上传文件时,文件的大小从来没有被放入文件大小字段……所以我有点尴尬

有没有一种方法可以通过查询来计算a的大小。a文件大小以兆字节为单位,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

真的很简单!:-)

对于那些感兴趣的人,我找到了解决方案:

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
真的很简单!:-)