sql >> Database teknologi >  >> RDS >> Oracle

Hvad er en elegant måde at returnere en læsbar 'filstørrelse' af en fil, der er gemt i en oracle blob-kolonne ved hjælp af SQL?

Den 'læsbare' del er, hvad jeg burde have understreget mere. Her er hvad jeg har sat sammen for nu.

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


  1. er der noget der ligner column_id i postgresql?

  2. Fejl på ORACLE trigger

  3. Tjek om der findes en database (MySQL), og hvis ikke opret den i PHP

  4. Vælge alle dublerede rækker baseret på en eller to kolonner?