Oracle
 sql >> Base de Dados >  >> RDS >> Oracle

Oracle PL/SQL:Verifique se BLOB ou CLOB está vazio


No Oracle PL/SQL, para verificar se BLOB ou CLOB estiver vazio ou não, use o dbms_lob.getlength() função ou dbms_lob.compare() função. Aqui estão os exemplos:

1. Usando a função 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. Usando a função 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;

Da mesma forma, para verificar se há CLOB vazio , altere o tipo de variável para clob e substitua o empty_blob() função com empty_clob() função no código PL/SQL acima.

Tutoriais relacionados:

  • Como salvar BLOB como arquivo em PL/SQL?
  • Como obter o BLOB do arquivo em PL/SQL?
  • Como obter o arquivo do BLOB no Oracle?
  • Como extrair dados BLOB do Oracle usando o Toad?
  • Exibir conteúdo BLOB (PDF, imagens) em uma região na página do Oracle Apex
  • Exibindo conteúdo CLOB no Oracle Apex