如何使用PL / SQL读取Oracle Directory的所有文件并更新BLOB列



我需要读取 Oracle 目录的每个文件(不知道名称(,如果文件名与 PK 表匹配,则用该文件更新 BLOB 列。

TABLE_TEST
ID   NUMBER(10,0) PK 
FOTO BLOB NULL

我做了一个PL/SQL函数来读取一个文件(知道名称(并使用BLOB更新表,它工作正常。但是,我不知道如何在不知道文件名的情况下读取每个文件并获取文件的名称。

DECLARE
l_blob      BLOB;
v_src_loc   BFILE := BFILENAME ('IMAGE_FILES8', '4.PNG');
v_amount    INTEGER;
BEGIN
UPDATE TABLE_TEST
SET FOTO = EMPTY_BLOB ()
WHERE ID = 4
RETURN FOTO
INTO l_blob;
DBMS_LOB.OPEN (v_src_loc, DBMS_LOB.LOB_READONLY);
v_amount := DBMS_LOB.GETLENGTH (v_src_loc);
DBMS_LOB.LOADFROMFILE (l_blob, v_src_loc, v_amount);
DBMS_LOB.CLOSE (v_src_loc);
COMMIT;
END;

看看这个网站,它解释了如何从目录中读取所有文件。

https://asktom.oracle.com/pls/asktom/asktom.search?tag=reading-files-in-a-directory-how-to-get-a-list-of-available-files

最新更新