Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- INSERT INTO OBJ_EMPLOYEES (employee_id, first_name, last_name, email, phone_number, hire_date, job_id, salary, commission_pct)
- SELECT employee_id, first_name, last_name, email, phone_number, hire_date, job_id, salary, commission_pct FROM EMPLOYEES;
- -- zde nemuzeme nastavit vazbu na oddeleni a managera, protoze v obj. tabulkach jeste nemusi neexistovat
- INSERT INTO OBJ_DEPARTMENTS obj_dept (department_id, department_name, manager_ref) -- zde uz muzeme nastavit vazbu na managera
- SELECT dept.department_id, dept.department_name, (
- SELECT REF(obj_manager) -- chceme referenci na objektoveho managera (zamestnance)
- FROM OBJ_EMPLOYEES obj_manager -- ovsem vazby oddeleni->manager jsou podchyceny pouze v puvodnich relacnich tabulkach
- WHERE obj_manager.employee_id = dept.manager_id -- proto v relacni tabulce dohledame spravneho managera a prave toho zde vybereme
- ) FROM DEPARTMENTS dept;
- UPDATE OBJ_EMPLOYEES obj_emp
- SET obj_emp.department_ref = -- nastavime referenci na oddeleni pro kazdy zaznam v tabulce OBJ_EMPLOYEES
- (SELECT REF(obj_dept) -- chceme referenci na objektove oddeleni
- FROM OBJ_DEPARTMENTS obj_dept -- ovsem vazby zamestnance->oddeleni jsou podchyceny pouze v puvodnich relacnich tabulkach
- JOIN DEPARTMENTS dept ON obj_dept.department_id = dept.department_id -- musime tedy dohledat odpovidajiciho relacni oddeleni
- JOIN EMPLOYEES emp ON emp.department_id = dept.department_id -- do ktere patri "nejaky" zamestnanec
- WHERE emp.employee_id = obj_emp.employee_id -- ovsem konkretne prave ten zamestnanec, kteremu prave referenci nastavujeme
- ),
- obj_emp.manager_ref = -- dale nastavime referenci na managera pro kazdy zaznam v tabulce OBJ_EMPLOYEES
- (SELECT REF(obj_manager) -- chceme referenci na objektoveho zamestnance
- FROM OBJ_EMPLOYEES obj_manager -- ovsem vazby zamestnanec->manager jsou podchyceny pouze v puvodnich relacnich tabulkach
- JOIN EMPLOYEES manager ON obj_manager.employee_id = manager.employee_id -- musime tedy dohledat odpovidajiciho relacniho managera
- JOIN EMPLOYEES emp ON emp.manager_id = manager.employee_id -- ktery je managerem "nejakeho" zamestnance emp
- WHERE emp.employee_id = obj_emp.employee_id -- ovsem konkretne prave toho zamestnance, kteremu prave referenci nastavujeme
- );
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement