Calculate SGA size

set serveroutput on; set feedback off; DECLARE block_buffers number(20); block_size number(20); large_pool number(20); shared_pool number(20); java_pool number(20); log_buffer number(20); sga_size number(20); dbms_version number(1); BEGIN SELECT to_number(value) INTO block_buffers from v$parameter where name ='db_block_buffers'; SELECT to_number(value) INTO block_size from v$parameter where name = 'db_block_size'; SELECT to_number(value) INTO shared_pool from v$parameter where name like 'shared_pool_size'; BEGIN SELECT to_number(value) INTO large_pool from v$parameter where name like 'large_pool_size'; EXCEPTION WHEN NO_DATA_FOUND THEN large_pool := 0; END; BEGIN SELECT to_number(substr(value,1,5)) INTO java_pool from v$parameter where name like 'java_pool_size'; EXCEPTION WHEN NO_DATA_FOUND THEN java_pool := 0; END; SELECT to_number(value) INTO log_buffer from v$parameter where name like 'log_buffer'; SELECT substr(value$,1,3) INTO dbms_version from sys.props$ where name ='NLS_RDBMS_VERSION'; IF dbms_version = 8.1 THEN sga_size := (((block_buffers*block_size) + large_pool + shared_pool + java_pool + log_buffer + 1000)/1000/1000) + 1; ELSIF dbms_version = 8.0 THEN sga_size := (((block_buffers*block_size) + large_pool + shared_pool + log_buffer + 1000)/1000/1000) + 1; ELSIF dbms_version = 7.3 THEN sga_size := (((block_buffers*block_size) +shared_pool + log_buffer + 1000)/1000/1000)/.9; END IF; dbms_output.put_line('============================='); dbms_output.put_line('SGA size :'||sga_size||' MB'); dbms_output.put_line('============================='); END; /