-- This procedure is used to define and generate abstract domains corresponding -- to column types in the dixie_db data base. with abstract_domain_generator; -- Step 1 with generator_support; use generator_support; procedure dixie_domain_view is -- Step 2 type package_names is -- Step 3 (dixie_employee_def_pkg, dixie_salary_def_pkg); package dom_packs is new abstract_domain_generator -- Step 4 (package_names); begin declare -- Step 5 type doms is (employee_id, name, address, weight); package domain_1 is new dom_packs.generate_domain_package -- Step 6 (dixie_employee_def_pkg, doms); package first is new domain_1.generate_int_domain -- Step 7 (employee_id, char, not_null, 1, 5); package second is new domain_1.generate_int_domain (name, char, not_null, 1, 10); package third is new domain_1.generate_int_domain (address, char, not_null, 1, 30); package four is new domain_1.generate_flt_domain (weight, real, not_null, 0.0, 300.0); begin -- Step 8 domain_1.start_generation; end; -- Repeated Steps 5 - 8 below for the second domain package declare type doms is (title, points, salary); package domain_2 is new dom_packs.generate_domain_package (dixie_salary_def_pkg, doms); package five is new domain_2.generate_int_domain (title, char, contains_null, 1, 15); package six is new domain_2.generate_int_domain (points, int, null_and_not_null, 0, 99); package seven is new domain_2.generate_flt_domain (salary, decimal, not_null, 0.00, 99000.00); begin domain_2.start_generation; end; begin -- Step 9 dom_packs.generate_base_specific; end; end dixie_domain_view;