sql >> Base de Datos >  >> RDS >> Oracle

Oracle PL/SQL:compruebe si BLOB o CLOB están vacíos

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