Hi: Not sure if this is the right place to post this question.

My dba has asked to execute a alter statement before the select statement in a 
perl script. So I need to run the following. Supposedly the alter statement, 
helps run the select sql run faster.

alter session set db_file_multiblock_read_count = 128;
SELECT ED.utime, ED.info, ED.agent_id FROM EVENT_DATA ED WHERE ED.utime between 
$period order by ED.utime;

where $period is a string such as "190 and 300".

I tried the following
   my $sql = qq{
         BEGIN
            alter session set db_file_multiblock_read_count = 128;
            SELECT ED.utime, ED.info, ED.agent_id FROM EVENT_DATA ED WHERE 
ED.utime between $period order by ED.utime;
         END; };
   my $sth = $dbh->prepare($sql);
   $sth->execute();

I get the following error
====================
DBD::Oracle::st execute failed: ORA-06550: line 3, column 5:
PLS-00103: Encountered the symbol "ALTER" when expecting one of the following:
   begin case declare exit for goto if loop mod null pragma
   raise return select update while with <an identifier>
   <a double-quoted delimited-identifier> <a bind variable> <<
   close current delete fetch lock insert open rollback
   savepoint set sql execute commit forall merge
   <a single-quoted SQL string> pipe
The symbol "update was inserted before "ALTER" to continue. (DBD ERROR: error 
possibly near <*> indicator at char 14 in '
                        BEGIN
                                <*>alter session set 
db_file_multiblock_read_count = 128;
                                SELECT ED.utime, ED.info, ED.agent_id FROM 
EVENT_DATA ED WHERE ED.utime between 1164650400 and 1164653940 order by 
ED.utime;
                        END; ') [for Statement "
                        BEGIN
                                alter session set db_file_multiblock_read_count 
= 128;
                                SELECT ED.utime, ED.info, ED.agent_id FROM 
EVENT_DATA ED WHERE ED.utime between 1164650400 and 1164653940 order by 
ED.utime;
                        END; "] at 
/actuate/AcServer/reports_scripts/report_functions.pl line 48.
=========================
Could someone help.
Thanks
Ravi


 
____________________________________________________________________________________
Do you Yahoo!?
Everyone is raving about the all-new Yahoo! Mail beta.
http://new.mail.yahoo.com

--
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
<http://learn.perl.org/> <http://learn.perl.org/first-response>


Reply via email to