您将如何编写 SQL 查询以更易读的形式获取 blob 的大小?该示例类似于将大型 Word 文档存储在表上的 blob 中。我想执行类似的东西:
select fnc_getReadableSize(documents.doc) from documents where id = ?
输出:
23.4 MB
最佳答案
“可读”部分是我应该更多强调的。这是我现在整理的内容。
WITH file_sizes AS
(SELECT 1048576 MEGABYTE, 1024 KILOBYTE,
DBMS_LOB.GETLENGTH (BLOB_COLUMN) byte_size
FROM BLOB_COLUMN)
SELECT (CASE TRUNC (byte_size / MEGABYTE)
WHEN 0
THEN TO_CHAR ((byte_size / KILOBYTE), '999,999') || ' KB'
ELSE TO_CHAR ((byte_size / MEGABYTE), '999,999.00') || ' MB'
END
) display_size
FROM file_sizes
Output:
DISPLAY_SIZE
--------------
1.88 MB
433 KB
540 KB
333 KB
1.57 MB
1.17 MB
关于sql - 使用 SQL 返回存储在 oracle blob 列中的文件的可读 'file size' 的优雅方法是什么?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/840966/