Oracle FAQ | Your Portal to the Oracle Knowledge Grid |
Home -> Community -> Usenet -> c.d.o.misc -> OCI-22060 Error when accessing OCINumber in Object Type
Hello,
I have written an Oracle Object Type "Person" that has a member
procedure testProc (see code below).
Whenever I call this member procedure with a valid object, I get an
Oracle Error
"OCI-22060: argument [2] is an invalid or uninitialized number". Example:
I execute the following SQL-Script:
------ 8< --------------------
SET SERVEROUTPUT ON;
DECLARE
p person;
BEGIN
p := Person ('Michael',25,NULL);
p.testProc(42);
DBMS_OUTPUT.PUT_LINE(p.age);
END;
------ 8< --------------------
Obviously, p should have a valid number (42) as age. Any clues what this error means and how to fix it?
Regards,
Michael
NAME VARCHAR2(50), AGE NUMBER, LASTVISIT DATE, MEMBER PROCEDURE testProc(test BINARY_INTEGER)
) NOT FINAL; CREATE OR REPLACE TYPE BODY person AS
MEMBER PROCEDURE testProc(test BINARY_INTEGER) AS
LANGUAGE C LIBRARY lib_extproc_demo
NAME "person_testProc"
WITH CONTEXT PARAMETERS ( CONTEXT, test int,
test INDICATOR short,
SELF, SELF INDICATOR struct
);
END;
short error; OCIEnv *env; OCISvcCtx *sctx; OCIError *err; error = OCIExtProcGetEnv (ctx, &env, &sctx, &err); ub4 num;
// THE FOLLOWING LINE GENERATES ERROR:
// "OCI-22060: argument [2] is an invalid or uninitialized number"
error = OCINumberToInt(err, &(self->age), sizeof(num), OCI_NUMBER_UNSIGNED, &num);
/* ... checking error ... */
}
Received on Tue Nov 09 2004 - 06:13:09 CST