V Oracle PL/SQL zkontrolujte, zda BLOB nebo CLOB je prázdná nebo ne, použijte dbms_lob.getlength() funkce nebo dbms_lob.compare() funkce. Zde jsou příklady:
1. Pomocí funkce dbms_lob.getlength()
declare
vblob blob;
Cursor c_blob
is
select content into vblob
from employee_docs
where employee_id = 101;
begin
open c_blob;
fetch c_blob into vblob;
close c_blob;
/* if the vblob is empty then the length would be 0 */
if dbms_lob.getlength(vblob) = 0 then
raise_application_error(-20001, 'Blob is empty.');
end if;
-- do anything with vblob
end; 2. Pomocí funkce dbms_lob.compare()
declare
vblob blob;
Cursor c_blob
is
select content into vblob
from employee_docs
where employee_id = 101;
begin
open c_blob;
fetch c_blob into vblob;
close c_blob;
/* if vblob is equal to an empty_blob, means it is empty */
if dbms_lob.compare(vblob, empty_blob()) = 0 then
raise_application_error(-20001, 'Blob is empty.');
end if;
-- do anything with vblob
end;
Podobně pro kontrolu, zda není CLOB prázdný , změňte typ proměnné na clob a nahraďte empty_blob() funkce s empty_clob() funkce ve výše uvedeném kódu PL/SQL.
Související výukové programy:
- Jak uložit BLOB jako soubor v PL/SQL?
- Jak získat BLOB ze souboru v PL/SQL?
- Jak získat soubor z BLOB v Oracle?
- Jak extrahovat data BLOB z Oracle pomocí Toad?
- Zobrazení obsahu BLOB (PDF, obrázky) do oblasti na stránce Oracle Apex
- Zobrazení obsahu CLOB v Oracle Apex