ORA-06509: PL/SQL: Interface call failed between the PL/SQL package and a binary executable.
Prior to 23c, the error message was PL/SQL: ICD vector missing for this package.
create or replace package psdb as
function comp(a varchar2, b varchar2) return boolean;
end psdb;
/
create or replace package body psdb as
function psdbcomp(STR1 varchar2, STR2 varchar2) return boolean; pragma interface (c, PSDBCOMP);
function comp(a varchar2, b varchar2) return boolean is
begin
return psdbcomp(a, b);
end comp;
end psdb;
/
The following PL/SQL block throws the error in line 7 of the psdb package:
declare
b boolean;
begin
b := psdb.comp('x', 'X');
end;
/
Oracle's documentation states as cause for this error that the package's Interface Call Document (ICD) is incompatible with the binary executable in the Oracle home.