CREATE OR REPLACE PROCEDURE analyzeTable (param_tab varchar2) Authid Current_User is cursor tabCursor is select table_name from user_tables; sqlStr varchar2(200); begin if param_tab is not null THEN sqlStr:='analyze table '||param_tab ||' compute statistics'; execute immediate sqlStr; else for tab in tabCursor loop sqlStr:='analyze table '||tab.table_name ||' compute statistics'; execute immediate sqlStr; end loop; end if; end;