Skip to Main Content

Oracle Database Free

Announcement

For appeals, questions and feedback about Oracle Forums, please email oracle-forums-moderators_us@oracle.com. Technical questions should be asked in the appropriate category. Thank you!

Regression in Oracle 23c when using PL/SQL DELETE .. RETURNING with NULL BLOBS and associative arrays

Lukas EderApr 4 2023 — edited Apr 4 2023

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.

This post has been answered by Loïc Lefèvre-Oracle on Apr 4 2023
Jump to Answer
Comments
Post Details
Added on Apr 4 2023
4 comments
359 views