Oracle
 sql >> Datenbank >  >> RDS >> Oracle

Oracle PL/SQL:Prüfen Sie, ob BLOB oder CLOB leer ist

In Oracle PL/SQL, um zu prüfen, ob BLOB oder CLOB leer ist oder nicht, verwenden Sie dbms_lob.getlength() Funktion oder dbms_lob.compare() Funktion. Hier sind die Beispiele:

1. Verwendung der Funktion 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. Verwendung der Funktion 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;

Ebenso, um nach leerem CLOB zu suchen , ändern Sie den Variablentyp in clob und ersetzen Sie empty_blob() Funktion mit empty_clob() Funktion im obigen PL/SQL-Code.

Verwandte Tutorials:

  • Wie speichert man BLOB als Datei in PL/SQL?
  • Wie erhalte ich BLOB aus einer Datei in PL/SQL?
  • Wie bekomme ich eine Datei von BLOB in Oracle?
  • Wie extrahiert man BLOB-Daten aus Oracle mit Toad?
  • Anzeigen von BLOB-Inhalten (PDF, Bilder) in einer Region auf der Oracle Apex-Seite
  • Anzeigen von CLOB-Inhalten in Oracle Apex