我有一个表在表中包含三列ID,Obj_name,Object。对象是指位于文件夹中的元数据/文件。如何编写脚本来检查每个对象的文件大小。
输出如
ID,Obj_name,对象,FILE_SIZE。
让我知道是否有任何想法。
答案 0 :(得分:2)
试试这个:
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;
答案 1 :(得分:0)
由于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
。请注意,此示例直接取自documentation on LOBs