in reply to Re: Retrieving result sets using stored procedures (DBI, DBD::Oracle)
in thread Retrieving result sets using stored procedures (DBI, DBD::Oracle)

Sadly, I get the same result using DBD-Oracle8...

The particulars on my development box being:
- ActiveState ActivePerl 5.6.1.632
- DBD-Oracle version 1.06
- DBI version 1.23
- OS: MS Win2k
- Oracle client: Release 9.0.1.0.1
- Oracle server: Oracle8i Enterprise Edition Release 8.1.7.3.0

I am suspicious of the Oracle 9 client...

  • Comment on Re: Re: Retrieving result sets using stored procedures (DBI, DBD::Oracle)

Replies are listed 'Best First'.
Re: Re: Re: Retrieving result sets using stored procedures (DBI, DBD::Oracle)
by rdfield (Priest) on Jul 01, 2002 at 12:29 UTC
    I am suspicious of the Oracle 9 client...

    ...installing an 8.1.x client would be my next guess: everything else looks OK. In fact I'm surprised that you got as far as you did with a 9i client :)

    rdfield

      FYI,

      It appears that things are just a bit pickier using DBI than I'm used to...

      In the package description, I changed the where clause of the select:
      s/job = job_in/RTRIM (job) = RTRIM (job_in)/;
      and...success (using the oracle 9 client no less!). :-)

      gsiems
        Taking a closer look at the results in you original question it looks like your emp table was populated with space padded data (i.e. 'CLERK     ' rather than 'CLERK'). The change to the SQL using RTRIM will stop the optimizer from using indexes - my suggested change would be run an update statement first to remove the extra spaces. There is a function called 'dump' that can be applied to returned column (e.g. dump(job)) that can help in these situations: it shows the actual size and internal representation of the data, which would have immediately shown that the returned data was too long (10 characters for 'CLERK     ' v 5 characters for 'CLERK')

        rdfield