2009-05-08 3 views

Répondre

9

La partie « lisible » est ce que je l'ai souligné plus. Voici ce que je mets ensemble pour le moment.

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 
+2

Ne le serait-il pas? plus facile/plus de readbale à faire 'WHEN byte_size jpmc26

5
SELECT DBMS_LOB.GETLENGTH(COLUMN_NAME) FROM DOCUMENTS 
+0

J'aurais dû souligner la partie 'lisible'. J'ai fini par utiliser une clause WITH pour établir mes constantes, puis j'ai arbitrairement décidé que les variations de KB et de MB seraient suffisantes pour mon besoin immédiat de rapport. –

+0

En supplément mais non demandé par l'OP, il pourrait aussi fonctionner avec un BFILE: 'select dbms_lob.getlength (bfilename ('MYDIR', 'oracle.png')) s à partir de dual;' – lkuty

Questions connexes