Oracle FAQ Your Portal to the Oracle Knowledge Grid
HOME | ASK QUESTION | ADD INFO | SEARCH | E-MAIL US
 

Home -> Community -> Usenet -> c.d.o.misc -> OCI-22060 Error when accessing OCINumber in Object Type

OCI-22060 Error when accessing OCINumber in Object Type

From: Michael Schaefers <schaefe3_at_cs.uni-bonn.spam-remove.de>
Date: Tue, 09 Nov 2004 13:13:09 +0100
Message-ID: <cmqc8l$h3a$1@f1node01.rhrz.uni-bonn.de>


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

Original text of this message

HOME | ASK QUESTION | ADD INFO | SEARCH | E-MAIL US