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
Oracle PL/SQL:Exportera data från en tabell till CSV
Hämta meddelanden från Mailbox med PL/SQL Mail_Client API
-
PostgreSQL hög tillgänglighet med Master-Slave &Master-Master-arkitekturer
-
Så här använder du Sortering (Ordna efter) i Välj uttalande i SQL Server - SQL Server / TSQL Tutorial Del 109
-
Mysql select rekursiv få alla barn med flera nivåer
-
pyodbc.connect() fungerar, men inte sqlalchemy.create_engine().connect()