Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- DECLARE
- CURSOR cur_empleados IS
- SELECT nom,apes,cod,num_dp FROM a.emp;
- va_emp a.ast.cod_em%TYPE;
- CURSOR cur_cursos(p_emp a.ast.cod_em%TYPE) IS
- SELECT cod_em,cur.nom,emp FROM a.pro,a.ses,a.cur,a.ast
- WHERE codpro=codpro_pr AND ses.codcur_cr=codcur AND ast.codcur_cr=codcur
- AND cod_em=va_emp;
- v_dep a.dep.nom%TYPE;
- v_cur cur_cursos%ROWTYPE;
- v_emp cur_empleados%ROWTYPE;
- v_numcur NUMBER(3,0);
- v_ncs NUMBER(3,0);
- v_sindep NUMBER(3,0);
- v_singas NUMBER(3,0);
- v_sincur NUMBER(3,0);
- v_pc NUMBER(3,0);
- v_gas NUMBER(6,2);
- BEGIN
- v_sincur:=0;
- v_singas:=0;
- v_sindep:=0;
- OPEN cur_empleados;
- FETCH cur_empleados INTO v_emp;
- WHILE cur_empleados%found LOOP
- DBMS_OUTPUT.put_line('Nombre: '||v_emp.nom);
- IF v_emp.num_dp IS NULL
- THEN
- DBMS_OUTPUT.put_line('Departamento sin asignar ');
- v_sindep:=v_sindep+1;
- ELSE
- SELECT nom INTO v_dep FROM a.dep
- WHERE v_emp.num_dp=num;
- DBMS_OUTPUT.put_line('Departamento: '||v_dep);
- END IF;
- SELECT COUNT(codcur_cr) INTO v_numcur FROM a.ast
- WHERE cod_em=v_emp.cod;
- IF v_numcur>0
- THEN
- SELECT COUNT(cer) INTO v_ncs FROM a.ast
- WHERE cod_em=v_emp.cod AND cer='S';
- v_pc:=100*v_ncs/v_numcur;
- SELECT SUM(imp) INTO v_gas FROM a.gas
- WHERE v_emp.cod=cod_em_as;
- DBMS_OUTPUT.put_line('NΒΊ de cursos realizados:'||v_numcur);
- DBMS_OUTPUT.put_line('% de certificados obtenidos:'||v_pc);
- -- Gastos del empleado. Puede haber empleados sin gastos.
- IF v_gas=0 OR v_gas IS NULL
- THEN
- DBMS_OUTPUT.put_line('Sin gastos de formacion');
- v_singas:=v_singas+1;
- ELSE
- DBMS_OUTPUT.put_line('Gastos de formacion:'||v_gas);
- END IF;
- ELSE
- DBMS_OUTPUT.put_line('No ha asistido a cursos');
- v_sincur:=v_sincur+1;
- END IF;
- -- Relacion de cursos y empresas
- va_emp:=v_emp.cod;
- OPEN cur_cursos(va_emp);
- FETCH cur_cursos INTO v_cur;
- WHILE cur_cursos%found LOOP
- DBMS_OUTPUT.put_line('-'||v_cur.nom);
- FETCH cur_cursos INTO v_cur;
- END LOOP;
- CLOSE cur_cursos;
- DBMS_OUTPUT.put_line('---------------------------------------------------------------------');
- FETCH cur_empleados INTO v_emp;
- END LOOP;
- DBMS_OUTPUT.put_line('Numero de empleados procesados:'||cur_empleados%rowcount);
- DBMS_OUTPUT.put_line('Numero de empleados sin departamento asignado:'||v_sindep);
- DBMS_OUTPUT.put_line('Numero de empleados sin cursos de formacion:'||v_sincur);
- DBMS_OUTPUT.put_line('Numero de empleados sin gastos:'||(v_singas+v_sincur));
- CLOSE cur_empleados;
- END;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement