En Oracle PL/SQL, para verificar si BLOB
o CLOB
está vacío o no, utilice dbms_lob.getlength()
función o dbms_lob.compare()
función. Aquí están los ejemplos:
1. Uso de la función 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. Uso de la función 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;
Del mismo modo, para comprobar si hay CLOB
vacíos , cambie el tipo de variable a clob
y reemplaza empty_blob()
función con empty_clob()
en el código PL/SQL anterior.
Tutoriales relacionados:
- ¿Cómo guardar BLOB como archivo en PL/SQL?
- ¿Cómo obtener BLOB de un archivo en PL/SQL?
- ¿Cómo obtener un archivo de BLOB en Oracle?
- ¿Cómo extraer datos BLOB de Oracle usando Toad?
- Mostrar contenido BLOB (PDF, imágenes) en una región en la página de Oracle Apex
- Visualización de contenido CLOB en Oracle Apex