OCI interacts with stored procedure having RECORD parameter

From: Ming-Ding Tsao <mtsao_at_cas.org>
Date: 1996/08/30
Message-ID: <x6eu3tk7jxp.fsf_at_mdt26awm.i-have-a-misconfigured-system-so-shoot-me>#1/1


Question: In R7.3.2 using OCI in C language to call a stored procedure with a RECORD parameter as OUT how to use obndra() or obindps() to bind the local output variable to store the passed RECORD value ?

For example:

     
       CREATE OR REPLACE PACKAGE test AS
     
       TYPE TestType is RECORD (
	 f1           NUMBER(10)
	 f2           RAW(32760));
     
     
       PROCEDURE get_row(
	  in1           IN     INTEGER,
	  out1          OUT    TestType);
     
       END test;

  The results of odessp() for above "test.get_row" procedure would   be(partially):

Overload	Level	Pos	procName	Datatype
       0	    0	  1	IN1	               2
       0	    0	  2	AROW	             250
       0	    1	  1	F1	               2
       0	    1	  2	F2	              23

 static text plsql_block[] = 
      "begin \
          test.get_row(:in1, :out1 );\
      end;";

  In C using OCI to execute above PL/SQL block, if using obndra() I doubt it can work with ":out1" directly. Should it be three call for AROW, F1, F2 separately or just for F1 and F2 ? how to do it ?

  If using obindps() with operation code as "array of structure" how do you relate to above RECORD ?

  If above questions can be answered, can OCI handle "nested" RECORD   parameter ?

Thanks in advance, Ming Tsao

-- 
Received on Fri Aug 30 1996 - 00:00:00 CEST

Original text of this message