set serveroutput on DECLARE TYPE rec_owner_table IS RECORD ( owner sys.all_tables.owner%TYPE, table_name sys.all_tables.table_name%TYPE); TYPE tp_owner_table IS TABLE OF rec_owner_table INDEX BY BINARY_INTEGER; v_owner_table tp_owner_table; BEGIN v_owner_table(1).owner := 'SCOTT'; v_owner_table(1).table_name := 'EMPLOYEES'; v_owner_table(2).owner := 'SCOTT'; v_owner_table(2).table_name := 'DEPARTMENTS'; v_owner_table(3).owner := 'SCOTT'; v_owner_table(3).table_name := 'COUNTRIES'; FOR i IN 1 .. v_owner_table.COUNT LOOP DBMS_OUTPUT.PUT_LINE('Row ' || i || ': ' || v_owner_table(i).owner || '.' || v_owner_table(i).table_name); END LOOP; END; / _______________________________________________________________________________________ _______________________________________________________________________________________ set serveroutput on set verify off declare c_maxcount constant number(2) not null := 30; v_index number(2); v_option varchar2(64); v_parameter varchar2(64); v_value varchar2(64); type oracle_option is record ( option_name varchar2(50) ); type option_tab is table of oracle_option index by binary_integer; t_option option_tab; type out_oracle_option is record ( out_option_name varchar2(50), out_option_value varchar2(64), out_option_source varchar2(1) ); type out_option_tab is table of out_oracle_option index by binary_integer; t_out_option out_option_tab; begin v_index := 0; t_option(1).option_name := 'Multitenant'; t_option(2).option_name := 'Real Application Clusters'; t_option(3).option_name := 'Real Application Clusters One Node'; t_option(4).option_name := 'Active Data Guard'; t_option(5).option_name := 'Partitioning'; t_option(6).option_name := 'Real Application Testing'; t_option(7).option_name := 'Advanced Compression'; t_option(8).option_name := 'Advanced Security'; t_option(9).option_name := 'Oracle Label Security'; t_option(10).option_name := 'Oracle Database Vault'; t_option(11).option_name := 'OLAP'; t_option(12).option_name := 'Advanced Analytics'; t_option(13).option_name := 'Spatial'; t_option(14).option_name := 'TimesTen Application-Tier Database Cache'; t_option(15).option_name := 'Database In-Memory'; t_option(16).option_name := 'Retail Data Model'; t_option(17).option_name := 'Communications Data Model'; t_option(18).option_name := 'Airlines Data Model'; t_option(19).option_name := 'Utilities Data Model'; t_option(20).option_name := 'Diagnostics Pack'; t_option(21).option_name := 'Tuning Pack'; t_option(22).option_name := 'Database Lifecycle Management Pack'; t_option(23).option_name := 'Data Masking and Subsetting Pack'; t_option(24).option_name := 'Cloud Management Pack for Oracle Database'; t_option(25).option_name := 'Secure Backup'; t_option(26).option_name := 'TimesTen In-Memory Database'; t_option(27).option_name := ''; t_option(28).option_name := ''; t_option(29).option_name := ''; t_option(30).option_name := ''; << printit >> for i in 1 .. c_maxcount loop -- dbms_output.put_line('Row ' || i || ' = ' || t_option(i).option_name); v_option := t_option(i).option_name; begin select parameter, value into v_parameter, v_value from v$option where parameter = v_option; -- dbms_output.put_line('* index update *'); v_index := v_index + 1; t_out_option(v_index).out_option_name := t_option(i).option_name; t_out_option(v_index).out_option_value := v_value; t_out_option(v_index).out_option_source := 'O'; exception when NO_DATA_FOUND then dbms_output.put_line('No entry found for option: ' || v_option); null; end; begin select distinct name, 'TRUE' into v_parameter, v_value from dba_feature_usage_statistics where name = v_option and detected_usages > 0; -- dbms_output.put_line('* index update *'); v_index := v_index + 1; t_out_option(v_index).out_option_name := t_option(i).option_name; t_out_option(v_index).out_option_value := v_value; t_out_option(v_index).out_option_source := 'F'; exception when NO_DATA_FOUND then dbms_output.put_line('No entry found for feature: ' || v_option); null; end; end loop; for i in 1 .. v_index loop dbms_output.put_line('- Option: ' || t_out_option(i).out_option_name || ' - Value: ' || t_out_option(i).out_option_value || ' - Source: ' || t_out_option(i).out_option_source); end loop; exception when others then dbms_output.put_line ('Fehler: ' || SQLCODE); end; /