Hi: my dba has asked to execute a alter statement before the select 
statement. So I need to run the following

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; };
   print "Running\n$sql\n";
   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 


Reply via email to