>我有一个表,其中包含三列ID,Obj_name,表中的对象。对象是指位于文件夹中的元数据/文件。如何编写脚本来检查每个对象的文件大小是多少。
输出喜欢
ID,Obj_name,对象,File_size.
如果有任何想法,请告诉我。
试试这个:
DECLARE
v_fexists BOOLEAN;
v_file_length NUMBER;
v_block_size BINARY_INTEGER;
BEGIN
UTL_FILE.FGETATTR
('NFS_DIR', 'west.txt', v_fexists, v_file_length,
v_block_size);
DBMS_OUTPUT.PUT_LINE (v_file_length);
END;
由于object
是一个bfile
,你可以做类似的事情
CREATE OR REPLACE FUNCTION( p_id IN INTEGER )
RETURN INTEGER
IS
l_bfile bfile;
l_length integer;
BEGIN
SELECT object
INTO l_bfile
FROM your_table
WHERE id = p_id;
DBMS_LOB.OPEN(l_bfile, DBMS_LOB.LOB_READONLY);
/* Get the length of the LOB: */
l_length := DBMS_LOB.GETLENGTH(l_bfile);
DBMS_LOB.CLOSE(l_bfile);
RETURN l_length;
END;
然后从传入id
的查询中调用该函数。 请注意,此示例直接取自有关 LOB 的文档