Try this script:
drop table t;
create table t (id int primary key, b blob);
insert into t values (1, 'a');
insert into t values (2, null);
select * from t;
-- This works, the BLOB is not null:
declare
o DBMS_SQL.BLOB_TABLE;
begin
delete from t where t.id = 1
returning t.b
bulk collect into o;
end;
/
-- This fails with ORA-00600:
declare
o DBMS_SQL.BLOB_TABLE;
begin
delete from t where t.id = 2
returning t.b
bulk collect into o;
end;
/
The error message being:
ORA-00600: internal error code, arguments: [kollasg:client-side tmp lob], [], [], [], [], [], [], [], [], [], [], []
If I skip the first PL/SQL block in the script, then I get a different error message:
ORA-24805: Source LOB type does not match destination LOB type.
ORA-06512: at line 4
24805. 00000 - "LOB type mismatch"
This used to work with Oracle 21c.