Thursday, January 14, 2010

Truncate Queue Table

#!/bin/bash
export ORAENV_ASK=NO
export JAVA_HOME=/app/oracle/jdk1.5.0_12
#export GETSQLPLUS_HOME=/opt/app/oracle
export ORACLE_SID=SOASTG1
qtabs=`
sqlplus -s / as sysdba<set heading off
set feedback off
set echo off
select distinct queue_table from dba_queue_tables where owner = 'AQUSER';
quit;
EOF
`
for t in $qtabs;do
date
echo "Truncating Queue $t"
sqlplus -s / as sysdba<set heading off
set feedback off
set echo off
declare
po_t dbms_aqadm.aq\$_purge_options_t;
begin
po_t.block := FALSE;
dbms_aqadm.purge_queue_table(queue_table => 'aquser.$t',
purge_condition => '',
purge_options => po_t);
end;
/
COMMIT;
quit;
EOF
done
echo "DONE!"