I am running Oracle 8.1.5 and am using many stored procedures.  We
use returned cursors, and individual values.  The problem is, when
a stored procedure is executed and the specified bound variable has not
be declared large enough to hold the returned value subsequent
bound variables do not get set and I cannot find any way to
automatically detect this.

Example:

The stored procedure takes 1-input value and returns three string
values.

the stored procedure is prepared , so I get the statement handle.

I bind the input variable, and then bind the three output variables (1,
2, & 3)
as 100 character strings.

I then execute the statment handle.

There do not appear to be any errors, after checking the returned value
(for the execute call),
and ->err and ->errstr are clean.

variable 1 has the correct returned value.
BUT, output variable 2 & 3, have no value.

------
Executing the stored procedure using sqlplus (sql command line
interface) indicated:

What really occured is that the returned output variables 1 & 3 were
under 100 characters long
output variable 2 was 120 characters long

---------

I know I could make all output variables the max size allowed in the
database field
but this would seem to waste space in the perl code.  Since the field in

the database
is simply defined as a varchar2 with no size limitation (upto 32767).

-----
Am I missing something about detecting that variables 2 & 3 did not get
stored correctly
by DBI::Oracle??



--
Oscar "Fred" DeMartino                            FFFFF  DDDD    CCC
320 N. Halstead Ave. Ste #160                     F       D  D  C   C
Pasadena, CA 91107                                FFF     D  D  C
e-mail:   [EMAIL PROTECTED]    F       D  D  C
Phone:    (626)306-6649                           F       D  D  C   C
Federal Data Corporation                          F      DDDD    CCC


Reply via email to