您将如何编写 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/

10-11 10:19
查看更多