【TechTarget中国原创】问:我有一个表,名字是DOCUMENT,用BLOB数据类型存储了文件(DIC, PDF, XLS等)。我想要查询存储在BLOB对象中的每个文件的尺寸。请问应该怎么做啊?
答:希望我这里的内容能够给你一定的提示。我有一个表叫做DEMO。它有一个字段名为THEBLOB,数据类型为BLOB。使用DBMS_LOB包和它的过程GETLENGTH,我可以找出blob的大小。看看我下面的例子。
还有,注意我有几个文件类型插入:PDF, MSWORD, BMP 和 JPEG。
SQL> desc scott.demo Name Null? Type ----------------------------------------- -------- ---------------------------- ID NOT NULL NUMBER(38) THEBLOB BLOB FILE_NAME VARchar2(50) CENTER_ID VARchar2(5) MIMI_TYPE VARchar2(20) THELONG LONG RAW |
SQL> l 1 select substr(file_name,1,20) Name, MIMI_TYPE, dbms_lob.GETLENGTH(theblob) 2* from scott.demo SQL> / NAME MIMI_TYPE DBMS_LOB.GETLENGTH(THEBLOB) -------------------- -------------------- --------------------------- Design and Construct application/pdf 682183 Lease Agreement - 18 application/pdf 2301417 Agreement in Princip application/pdf 353304 User Manual application/MSWORD 1089536 unknown Job Corps.bmp image/bmp 64062 01-New VST Retail Sa image/jpeg 89525 Agreement in Princip application/pdf 353304 Design and Construct application/pdf 682183 Lease Agreement - 18 application/pdf 2301417 10 rows selected. SQL> spool off; |