declare cursor c_env is select msa_environment_no, msa_environment from msa_core.msa_environment where deleted_date is null; r_env c_env%rowtype; cursor c_par is select msa_parameter_no, msa_parameter, sys.msa_system_no, sys.msa_system, cls.msa_parameter_class_no, cls.msa_parameter_class from msa_core.msa_parameter par, msa_core.msa_system sys, msa_core.msa_parameter_class cls where par.deleted_date is null and par.msa_system_no = sys.msa_system_no and par.msa_parameter_class_no = cls.msa_parameter_class_no; r_par c_par%rowtype; cursor c_missing is select * from tmp_466885 order by sys, par, env; r_missing c_missing%rowtype; cursor c_val ( p_sys number, p_class number, p_env number, p_par number) is select sys.msa_system_no, sys.msa_system, cls.msa_parameter_class_no, cls.msa_parameter_class, env.msa_environment_no, env.msa_environment, par.msa_parameter_no, par.msa_parameter, val.msa_parameter_value from msa_core.msa_parameter par, msa_core.msa_system sys, msa_core.msa_parameter_class cls, msa_core.msa_environment env, msa_core.msa_parameter_value val where par.deleted_date is null and par.msa_system_no = sys.msa_system_no and par.msa_parameter_class_no = cls.msa_parameter_class_no and par.msa_parameter_no = val.msa_parameter_no and env.msa_environment_no = val.msa_environment_no and sys.msa_system_no = p_sys and cls.msa_parameter_class_no = p_class and env.msa_environment_no <> p_env and par.msa_parameter_no = p_par and val.date_from <= trunc (sysdate) and val.date_to >= trunc (sysdate) order by sys.msa_system, par.msa_parameter, env.msa_environment; r_val c_val%rowtype; -- l_par_val_no msa_core.msa_parameter_value.msa_parameter_value_no%type; l_par_val msa_core.msa_parameter_value.msa_parameter_value%type; l_count number (13); l_tab_row number (13) := 0; type sys_no is table of varchar2 (100); type sysname is table of varchar2 (100); type class_no is table of varchar2 (100); type classname is table of varchar2 (500); type env_no is table of varchar2 (100); type env is table of varchar2 (100); type par_no is table of varchar2 (100); type par is table of varchar2 (2000); t_sys_no sys_no := sys_no (); t_sys sysname := sysname (); t_class_no class_no := class_no (); t_class classname := classname (); t_env_no env_no := env_no (); t_env env := env (); t_par_no par_no := par_no (); t_par par := par (); -- begin -- dbms_output.enable (500000); for r_env in c_env loop for r_par in c_par loop begin l_par_val_no := null; l_par_val := null; l_count := 0; l_tab_row := l_tab_row + 1; select count (*) into l_count from msa_core.msa_parameter_value where msa_parameter_no = r_par.msa_parameter_no and msa_environment_no = r_env.msa_environment_no and date_from <= trunc (sysdate) and date_to >= trunc (sysdate); -- if l_count = 0 then t_sys_no.extend; t_sys.extend; t_class_no.extend; t_class.extend; t_env_no.extend; t_env.extend; t_par_no.extend; t_par.extend; -- t_sys_no (l_tab_row) := r_par.msa_system_no; t_sys (l_tab_row) := r_par.msa_system; t_class_no (l_tab_row) := r_par.msa_parameter_class_no; t_class (l_tab_row) := r_par.msa_parameter_class; t_env_no (l_tab_row) := r_env.msa_environment_no; t_env (l_tab_row) := r_env.msa_environment; t_par_no (l_tab_row) := r_par.msa_parameter_no; t_par (l_tab_row) := r_par.msa_parameter; -- end if; end; end loop; end loop; commit; dbms_output.put_line ('PARAMETERS WITH NO PARAMETER VALUES PRESENT'); dbms_output.put_line ('msa_system_no, msa_system, msa_parameter_class_no, msa_parameter_class,' || 'msa_environment_no, msa_environment, msa_parameter_no, msa_parameter'); for i in t_sys_no.first .. t_sys_no.last loop dbms_output.put_line (t_sys_no (i) || ',' || t_sys (i) || ',' || t_class_no (i) || ',' || t_class (i) || ',' || t_env_no (i) || ',' || t_env (i) || ',' || t_par_no (i) || ',' || t_par (i) ); end loop; dbms_output.put_line (' '); dbms_output.put_line ('CORRESPONDING PARAMETER VALUES IN OTHER ENVIRONMENTS'); dbms_output.put_line ('msa_system_no, msa_system, msa_parameter_class_no, msa_parameter_class,' || 'msa_environment_no, msa_environment, msa_parameter_no, msa_parameter, msa_parameter_value'); for i in t_sys_no.first .. t_sys_no.last loop for r_val in c_val (t_sys_no (i), t_class_no (i), t_env_no (i), t_par_no (i) ) loop dbms_output.put_line (r_val.msa_system_no || ',' || r_val.msa_system || ',' || r_val.msa_parameter_class_no || ',' || r_val.msa_parameter_class || ',' || r_val.msa_environment_no || ',' || r_val.msa_environment || ',' || r_val.msa_parameter_no || ',' || r_val.msa_parameter || ',' || r_val.msa_parameter_value); end loop; end loop; end;