REM wrapper848.sql REM dbms_stats wrapper script for Oracle 10gR2 PT>=8.48 spool wrapper CREATE OR REPLACE PACKAGE wrapper AS PROCEDURE ps_stats (p_ownname VARCHAR2, p_tabname VARCHAR2, p_estpct NUMBER); END wrapper; / CREATE OR REPLACE PACKAGE BODY wrapper AS PROCEDURE ps_stats(p_ownname VARCHAR2, p_tabname VARCHAR2, p_estpct NUMBER) IS table_stats_locked EXCEPTION; PRAGMA EXCEPTION_INIT(table_stats_locked,-20005); BEGIN IF p_estpct = 0 THEN sys.dbms_stats.gather_table_stats (ownname=>p_ownname ,tabname=>p_tabname ,estimate_percent=>DBMS_STATS.AUTO_SAMPLE_SIZE ,method_opt=>'FOR ALL COLUMNS SIZE AUTO' ,granularity => 'ALL' --see Metalink Note 338845.1 ,cascade=>TRUE); ELSE sys.dbms_stats.gather_table_stats (ownname=>p_ownname ,tabname=>p_tabname ,estimate_percent=>p_estpct ,method_opt=>'FOR ALL COLUMNS SIZE AUTO' ,granularity => 'ALL' --see Metalink Note 338845.1 ,cascade=>TRUE); END IF; EXCEPTION WHEN table_stats_locked THEN NULL; END ps_stats; END wrapper; / show errors begin wrapper.ps_stats('SYSADM','PSLOCK',0); end; / begin wrapper.ps_stats('SYSADM','PSLOCK',.5); end; / begin wrapper.ps_stats('SYSADM','PSLOCK',1); end; / spool off