Add code into your PL/SQL block that 'unpacks' the ADT and returns the
field(s) within it as simple string types.
Tim.
On Tue, Jun 26, 2001 at 03:14:07PM -0700, Jeff Holt wrote:
> I've searched the DBI mailing list archive, the perldoc, and various example sites
>and have found
> no way to execute a pl/sql function that returns an abstract data type (i.e., a
>record). The
> example that I'm trying to construct is to call sys.utl_file.fopen() which returns a
>record.
>
> BTW, why would anyone define an adt with only one member; especially for fopen()
>which has always
> returned an integer (and probably always will return an integer)?
>
> use DBI;
> use DBD::Oracle;
> my ($udump, $filename) = ("/usr/local/oracle/admin/V816/udump", "ora_4709.trc");
> my ($fh, %sth) = (undef,undef);
> my $dbh = DBI->connect("dbi:Oracle:", "", "");
> $sth{open} = $dbh->prepare("begin :fh := sys.utl_file.fopen(:loc, :file, 'r',
>32767); end;");
> $sth{open}->bind_param_inout(":fh", \$fh, 20); # this is param that causes the exec
>to fail
> $sth{open}->bind_param(":loc", $udump);
> $sth{open}->bind_param(":file", $filename);
> $sth{open}->execute;
> exit 0;
>
> =====
> Jeff Holt
> Performance Specialist
> Hotsos, LLC
> [EMAIL PROTECTED]
> 817.821.9553
>
> __________________________________________________
> Do You Yahoo!?
> Get personalized email addresses from Yahoo! Mail
> http://personal.mail.yahoo.com/