我有一张包含数百万条记录的表,其中包含有关用户,他或她在BLOB中的文档以及每行保存文件大小的列的信息。 在报告时,我需要提取所有这些记录及其附件,并将它们存储在一个文件夹中。但是,约束是文件夹大小不应超过4GB。
我需要的是仅获取记录直到该记录,其中文件大小的总和小于4GB。我几乎没有任何数据库经验,也没有任何数据库专家可以参考。
例如 - 假设我需要仅获取记录直到sum(fileSize)< 9
Name fileSize
A 1
B 2
C 3
D 2
E 9
F 4
我的查询需要返回记录A,B,C和D. 此外,我需要存储另一个后续进程的第一个和最后一个记录的rowID / uniqueID。 正在使用的DB是IBM DB2。
谢谢!
答案 0 :(得分:-1)
所以这里有一些技巧可以找到你的文件大小。在程序中,您可以使用数据进行管理。
从文件中选择长度(file_data)
其中length(file_data)< 99999999;
82944
82944
91136
选择了3行。
从文件中选择dbms_lob.getlength(file_data)
其中length(file_data)< 89999;
82944
82944
选择了2行。
dbms_lob.getlength() vs. length() to find blob size in oracle
希望这会有所帮助......