Hurray! I got it working! Amazing! I did not expect
that I can actually figure it out myself...

I try out with exmaple PL/SQL from the
Oracle.ex/proc.pl. It runs and all expected result
returned! Yes!

It seems, there is a need to upgrade the Perl for this
case. This will be the proof I need for request of
upgrade the bloody perl!

Now need to test with the PL/SQL written from the
other guy...


--- Sei Heng Ang <[EMAIL PROTECTED]> wrote:
> I never thought this is possible... 
> 
> I decided (in the end), I need to upgrade the DBI +
> DBD::Oracle. And since I am doing upgrading, I
> decided
> to upgrade Perl as well.
> 
> But since, I just have a normal user account, I can
> not write to /usr/local/ for my perl. So, I decided
> to
> put entire Perl into my home directory. (I never did
> this before, I guess I was desparate...)
> 
> Anyway, the installation went smoothly. (To my
> surprise), I
>  manage to install Perl 5.6.1 + DBI 1.21 +
> DBD::Oracle
> 1.12
> 
> Now, I get a different set of error messages:
> 
> -------------------------------------------
> NOTE Connection OK
> Prepare OK
> Bind OK
> DBD::Oracle::st execute failed: ORA-06550: line 3,
> column 3:
> PLS-00553: character set name is not recognized
> ORA-06550: line 0, column 0:
> PL/SQL: Compilation unit analysis terminated (DBD
> ERROR: OCIStmtExecute) at ./test1.pl line 47.
> ERROR: DBD::Oracle::st execute failed: ORA-06550:
> line
> 3, column 3:
> PLS-00553: character set name is not recognized
> ORA-06550: line 0, column 0:
> PL/SQL: Compilation unit analysis terminated (DBD
> ERROR: OCIStmtExecute) at ./test1.pl line 47.
> 
> Close DBI
> ----------------------------------------------
> 
> I read through the Oracle page, these seems to point
> to some problem with the PL/SQL that I am using.
> Nothing related to perl.
> 
> Again, SELECT and retrieve from table is OK with the
> new installation.
> 
> The Perl code:
> 
> ====================================
> sub Do_query
> {
>         my $dbi = shift;
>         my $dbh = $dbi->{DBI};
>         my $result = "";
> 
>         my $sth;
>         eval {
>                 $sth = $dbh->prepare( q{
>                 BEGIN
>                 :aa := check_sms_book_request('11');
>                 END;
> 
>                 } );
> 
>                 print "Prepare OK\n";
> 
>                 $sth->bind_param_inout(":aa",
> \$result, 30);
> 
>                 print "Bind OK\n";
> 
>                 $sth->execute;
> 
>                 print "Execute OK\n";
> 
>         };
>           
>         if( $@ ){
>                 print "ERROR: $@\n";
>         } else{
>                 print "Result is $result\n";
>         }
>          
>         $sth->finish;
> 
>         return;
> }
> ================================
> 
> PL/SQL and SQL function is done by another person. I
> am suppose to access the PL/SQL and SQL function
> only.
> 
> We actually tested the PL/SQL statement above. Is
> working in the Oracle SQL command console. So, not
> sure what went wrong.
> 
> NOTE: This is interesting, the idea I can by pass
> administratior and install the entire Perl into my
> own
> directory set whatever control that /I/ want is
> *fun*...
> 
> Still trying to figure out what is going on...
> 
> 
> 
> --- Sei Heng Ang <[EMAIL PROTECTED]> wrote:
> > I still can't figure out how this problem occur.
> Is
> > very
> > strange. I can execute SELECT and retrieve records
> > from the table. But, whenever I try to run PL/SQL
> or
> > SQL function, errors will occur. There are other
> > errors from the
> > error code stated below.
> > 
> > Is there something I need to do with this
> > DBD::Oracle
> > thing before I can PL/SQL or SQL functions?
> > 
> > The perl version 5.005_03. DBD::Oracle version
> 1.06.
> > Oracle database: 8.x
> > 
> > The network setup:
> > 
> > 1) The Web server (Solaris), communicate with
> Oracle
> > DB server.
> > 2) I suggested to use Perl + DBD::Oracle for the
> > database connection. (Since is already installed
> > into
> > the system)
> > 3) Web server and the Oracle DB server is at two
> > different machines. Same network.
> > 
> > I am going nuts about this problem. Can't figure
> out
> > what went wrong...
> > 
> > Note: I don't have the root access to the
> webserver,
> > thus may not be able to install a new/updated Perl
> +
> > DBI + DBD::Oracle. Unless I can prove that an
> > upgrade
> > will solved all the problem.
> > 
> > Anyone can suggest anything?
> > 
> > Regard,
> > Sei Heng
> > 
> > 
> > --- Sei Heng Ang <[EMAIL PROTECTED]> wrote:
> > > Hello,
> > > 
> > > I have a function in the Oracle database,
> already
> > > created, which take in no input value, out put a
> > > status that is varchar2(6).
> > > 
> > > However, when I try to execute the following SQL
> > in
> > > DBD::Oracle, there was error appear.
> > > 
> > > The SQL code:
> > > 
> > > ==================
> > > BEGIN         
> > > :t := test_func;
> > > END;
> > > ===================
> > > 
> > > 
> > > 
> > > The perl code:
> > > 
> > > ===================
> > > my $tb_csr;
> > > my $result = "";
> > > 
> > > $tb_csr = $dbi->{DBI}->prepare(q{
> > >                         BEGIN            
> > >                         :t := test_func;
> > >                         END;            
> > >                 });
> > >        
> > > print "prepare OK\n";
> > >   
> > > $tb_csr->bind_param_inout(":t", \$result, 20);
> > >        
> > > print "bind OK\n";
> > >        
> > > $tb_csr->execute;
> > >        
> 
=== message truncated ===


__________________________________________________
Do You Yahoo!?
Yahoo! Sports - sign up for Fantasy Baseball
http://sports.yahoo.com

Reply via email to