Re: Dynamic array in call to stored procedure

From: Mark D Powell <Mark.Powell_at_eds.com>
Date: Sat, 31 May 2008 08:15:49 -0700 (PDT)
Message-ID: <d883daef-b481-4031-946a-631a61c860f1@25g2000hsx.googlegroups.com>


On May 30, 7:17 pm, semki..._at_gmail.com wrote:
> On May 30, 5:44 pm, DA Morgan <damor..._at_psoug.org> wrote:
>
>
>
>
>
> > semki..._at_gmail.com wrote:
> > > How to do the following with Oracle 9:
>
> > No such product. Provide full version information.
>
> > > 1. allocate array of VARCHAR
>
> > Look up ASSOCIATIVE ARRAYShttp://www.psoug.org/library.html
>
> > > 2. allocate array of related index variables
>
> > What does this mean?
>
> > > 3. call stored procedure from C++ and pass parameters from step 1 and
> > > 2.
>
> > Look up EXTERNAL PROCEDURES athttp://tahiti.oracle.com
>
> > > I can pass declared array, but how to pass allocated ?
>
> > What does this mean?
>
> > > Is it possible at all ?
>
> > Of course. But we would need to have a far clearer description to
> > know for sure what you are asking about.
> > --
> > Daniel A. Morgan
> > Oracle Ace Director & Instructor
> > University of Washington
> > damor..._at_x.washington.edu (replace x with u to respond)
> > Puget Sound Oracle Users Groupwww.psoug.org
>
> Hi,
> I use Oracle 9i. My code in C++ has to do the next:
>
> ...
> EXEC SQL BEGIN DECLARE SECTION;
>      VARCHAR*    pVar;
>      short*             pInd;
> EXEC SQL END DECLARE SECTION;
>
>      pVar = new VARCHAR[ARRAY_SIZE];
>      pInd = new short[ARRSY_SIZE];
>
> EXEC SQL EXECUTE
>      BEGIN
>          Package.Procedure(:pVar, :pInd);
>      END;
> END-EXEC;
>
> C++ percompiler doesn't allow use pointer VARCHAR* and all my attempts
> to use some wrapper didn't help.
> I can't compile C++  program, that calls stored procedure and use
> allocated array of VARCHAR.
>
> Without using 'new'
>
>      EXEC SQL BEGIN DECLARE SECTION;
>              VARCHAR    Var[ARRAY_SIZE];
>              short             Ind[ARRAY_SIZE];
>      EXEC SQL END DECLARE SECTION;
>
>  I can compile and run program
>
> I hope now I provided enough details. Any suggestions ?- Hide quoted text -
>
> - Show quoted text -

Using the 10gR2 version of the documentation, available free online and available for download from OTN, I found a section labeled Host Arrays in Ch. 7 Embedded PL/SQL from Pro*C/C++ Programmer's Guide 10g Release 2 (10.2) Part Number B14407-01 that seems to cover this topic with examples.

Try looking at this material and see if it helps.

http://tahiti.oracle.com

HTH -- Mark D Powell -- Received on Sat May 31 2008 - 10:15:49 CDT

Original text of this message