文档解释
ORA-24358: OCIBindObject not invoked for a Object type or Reference
Cause: OCIBindObject was not invoked resulting in an incomplete bind specification for a Object Type or Reference.
Action: Please invoke the OCIBindObject call for all Object Types and References.
ORA-24358错误指示没有对特定的Oracle Object类型或引用进行OCIBindObject调用。OCIBindObject的实现UDR的数据类型的绑定,赋值一个指向一个输入/输出变量的指针,允许该变量在应用程序和服务器之间保持一致。
这个错误指出,当调用存储过程时,Object类型或引用没有绑定。因此,在调用OCI函数之前,Object类型或引用必须正确绑定,该函数是OCIBindObject,此函数用于将指定的Object类型或引用绑定到特定的变量。
案例:
以下PL/SQL脚本将为joe用户创建一个名为Test_Schema的表和一个测试触发器:
create table joe.test_schema (id number);
create or replace trigger joe.test_schema_test
before insert or update on joe.test_schema
for each row
begin
if :new.id
raise_application_error(-20132,’Invalid ID entered,ID must be greater than zero.’);
end if;
end;
在尝试执行插入操作时,将收到ORA-24358错误。
一般处理方法及步骤
要正确处理这个错误,您必须在调用OCI函数之前的脚本中正确绑定Object类型或引用,该函数应该是OCIBindObject。并且必须对对象中使用的每个变量和参数都使用此调用,以正确绑定变量。