sql >> Database teknologi >  >> RDS >> Oracle

Oracle PL/SQL:Tjek, om BLOB eller CLOB er tom

I Oracle PL/SQL for at kontrollere, om BLOB eller CLOB er tom eller ej, skal du bruge dbms_lob.getlength() funktion eller dbms_lob.compare() fungere. Her er eksemplerne:

1. Brug af 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. Brug af 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;

Tilsvarende for at kontrollere for tom CLOB , skift variabeltypen til clob og erstat empty_blob() funktion med empty_clob() funktion i ovenstående PL/SQL-kode.

Relaterede selvstudier:

  • Hvordan gemmer man BLOB som fil i PL/SQL?
  • Hvordan får man BLOB fra fil i PL/SQL?
  • Hvordan hentes fil fra BLOB i Oracle?
  • Hvordan udtrækker man BLOB-data fra Oracle ved hjælp af Toad?
  • Vis BLOB-indhold (PDF, billeder) i en region på Oracle Apex-side
  • Visning af CLOB-indhold i Oracle Apex
  1. Gyldige modifikatorer for SQLite dato/tidsfunktioner

  2. Hvorfor fusionerede PostgreSQL brugere og grupper til roller?

  3. Hvordan konverteres billede til byte array kun ved hjælp af javascript for at gemme billede på sql server?

  4. MySQL Performance snydeark