Níže uvádím příklad funkce pro získání BLOB ze souboru v PL/SQL.
Funkce PL/SQL pro získání objektů BLOB ze souboru
Následující funkce načte soubor a vrátí datový typ BLOB souboru. Funkce GET_BLOB má dva parametry:(1) název objektu adresáře Oracle (2) název souboru.
CREATE OR REPLACE FUNCTION get_blob (i_dir IN VARCHAR2, i_file IN VARCHAR2) RETURN BLOB AS l_bfile BFILE; l_blob BLOB; BEGIN DBMS_LOB.createtemporary (l_blob, FALSE); l_bfile := BFILENAME (i_dir, i_file); DBMS_LOB.fileopen (l_bfile, DBMS_LOB.file_readonly); DBMS_LOB.loadfromfile (l_blob, l_bfile, DBMS_LOB.getlength (l_bfile)); DBMS_LOB.fileclose (l_bfile); RETURN l_blob; EXCEPTION WHEN OTHERS THEN IF DBMS_LOB.fileisopen (l_bfile) = 1 THEN DBMS_LOB.fileclose (l_bfile); END IF; DBMS_LOB.freetemporary (l_blob); RAISE; END get_blob;
Test
Předpokládejme, že máte soubor myimage.jpg ve složce C:\Pics, pak vytvořte objekt adresáře Oracle, například MY_PICS pro složku C:\Pics a zavolejte níže uvedenou funkci předáním názvu adresáře MY_PICS a názvu souboru myimage.jpg . Pokud nevíte, jak vytvořit objekt adresáře v Oracle, podívejte se na tento odkaz:Create Oracle Directory Object.
DECLARE f_blob BLOB; BEGIN f_blob := get_blob ('MY_PICS', 'myimage.jpg'); END;
Nyní máte BLOB souboru myimage.jpg v proměnné f_blob.
Viz také:
- Jak vložit soubor do databáze Oracle?