В Oracle PL/SQL, за да проверите дали BLOB или CLOB е празен или не, използвайте dbms_lob.getlength() функция или dbms_lob.compare() функция. Ето примерите:
1. Използване на функция 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. Използване на функция 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;
По същия начин, за да проверите за празен CLOB , променете типа на променливата на clob и заменете empty_blob() функция с empty_clob() функция в горния PL/SQL код.
Свързани уроци:
- Как да запишете BLOB като файл в PL/SQL?
- Как да получа BLOB от файл в PL/SQL?
- Как да получа файл от BLOB в Oracle?
- Как да извлечем BLOB данни от Oracle с помощта на Toad?
- Показване на BLOB съдържание (PDF, изображения) в регион в страницата на Oracle Apex
- Показване на съдържанието на CLOB в Oracle Apex