I am having problems trying to do file access....

Here is my code:

                $statement = "ALTER DATABASE BACKUP CONTROLFILE TO TRACE";
                $updated=$dbh->do($statement);
                if ($updated){
                        print "Control File Backed up to Trace<br>";
                        $statement = "select d.value, '\\', 'ora_' || p.spid
|| '.trc' trace_file_name
                                        from ( select p.spid
                                            from
                                              sys.v\$mystat m,
                                              sys.v\$session s,
                                              sys.v\$process p
                                            where
                                              m.statistic# = 1 and
                                              s.sid = m.sid and
                                              p.addr = s.paddr
                                          ) p, ( select value
                                            from
                                              sys.v\$parameter
                                            where
                                              name = 'user_dump_dest'
                                          ) d";

                        $getlogfile = $dbh->prepare($statement);
                        $getlogfile->execute();
                        while (@logfiles = $getlogfile->fetchrow_array ) {
                                print " $logfiles[0]$logfiles[1]$logfiles[2]
<br>";
                                $path = $logfiles[0];
                                $tracefile = $logfiles[2];
                        }
                        $getcontrolfiles->finish;
                        $statement = "create or replace package perl_global
as
                                            fd      utl_file.file_type \;
                                        end perl_global\;";
                        $updated=$dbh->do($statement);

                        $statement = "BEGIN
                        perl_global.fd := utl_file.fopen ('$path',
'$tracefile', 'r') \;
                        END \;";
                        print $statement;
                        $csr_open = $dbh -> prepare ($statement);
                        $csr_open -> execute ;
                        $statement = "BEGIN
                                utl_file.get_line (perl_global.fd, :line) \;
                                :more := 'Y' \;
                            EXCEPTION
                                WHEN NO_DATA_FOUND THEN
                                    :more := 'N' \;
                            END \;";

                        print $statement;

                        $csr_read = $dbh -> prepare ($statement);

                        $Line = "" ;
                        $csr_read -> bind_param_inout (":line", \$Line, 256)
;
                        $csr_read -> bind_param_inout (":more", \$More, 5) ;
                        while ($More eq "Y") {
                            $csr_read -> execute ;
                            last if $More eq "N" ;
                            print $Line . "\n" ;
                        }
                 }else{
                        print "Control File Failed to backup to trace
file<br>";
                }



Here is my error:

Control File Backed up to Trace<br>
E:\Oracle\admin\LLPROD\udump\ora_2828.trc <br>BEGIN
                        perl_global.fd := utl_file.fopen
('E:\Oracle\admin\LLPROD\udump', 'ora_2828.trc', 'r') ;
DBD::Oracle::st execute failed: ORA-06510: PL/SQL: unhandled user-defined
exception
ORA-06512: at "SYS.UTL_FILE", line 98
ORA-06512: at "SYS.UTL_FILE", line 157
ORA-06512: at line 2 (DBD ERROR: OCIStmtExecute) at ./documentor.pl line
189.
                        END ;



Thanks for any help you can give.....

Mark Wagner

Reply via email to