Oracle
 sql >> Base de données >  >> RDS >> Oracle

Oracle PL/SQL :vérifier si BLOB ou CLOB est vide

Dans Oracle PL/SQL, pour vérifier si BLOB ou CLOB est vide ou non, utilisez le dbms_lob.getlength() fonction ou dbms_lob.compare() une fonction. Voici les exemples :

1. Utilisation de la fonction 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. Utilisation de la fonction 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;

De même, pour vérifier les CLOB vides , changez le type de variable en clob et remplacez le empty_blob() fonction avec empty_clob() fonction dans le code PL/SQL ci-dessus.

Tutoriels associés :

  • Comment enregistrer un BLOB en tant que fichier en PL/SQL ?
  • Comment obtenir un BLOB à partir d'un fichier en PL/SQL ?
  • Comment obtenir un fichier à partir d'un BLOB dans Oracle ?
  • Comment extraire des données BLOB d'Oracle à l'aide de Toad ?
  • Afficher le contenu BLOB (PDF, images) dans une région d'Oracle Apex Page
  • Affichage du contenu CLOB dans Oracle Apex