sql >> Databasteknik >  >> RDS >> Oracle

Oracle PL/SQL:Kontrollera om BLOB eller CLOB är tom

I Oracle PL/SQL, för att kontrollera om BLOB eller CLOB är tom eller inte, använd dbms_lob.getlength() funktion eller dbms_lob.compare() fungera. Här är exemplen:

1. Använder funktionen 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. Använder funktionen 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;

På samma sätt, för att leta efter tomma CLOB , ändra variabeltypen till clob och ersätt empty_blob() funktion med empty_clob() funktion i ovanstående PL/SQL-kod.

Relaterade självstudier:

  • Hur sparar man BLOB som fil i PL/SQL?
  • Hur får man BLOB från fil i PL/SQL?
  • Hur får man en fil från BLOB i Oracle?
  • Hur extraherar man BLOB-data från Oracle med padda?
  • Visa BLOB-innehåll (PDF, bilder) i en region på Oracle Apex-sida
  • Visa CLOB-innehåll i Oracle Apex
  1. PostgreSQL hög tillgänglighet med Master-Slave &Master-Master-arkitekturer

  2. Så här använder du Sortering (Ordna efter) i Välj uttalande i SQL Server - SQL Server / TSQL Tutorial Del 109

  3. Mysql select rekursiv få alla barn med flera nivåer

  4. pyodbc.connect() fungerar, men inte sqlalchemy.create_engine().connect()