Está en la página 1de 6

EJERCICIOS PLSQL Pag 7 N 2) SET SERVEROUTPUT ON; DECLARE R_DEPT DEPT %ROWTYPE BEGIN SELECT * INTO R_DEPT RO!

DEPT W"ERE DNO!BRE#$CONTABILIDAD%; DB!S_OUTPUT&PUT_LINE '$DATOS DPTO%); DB!S_OUTPUT&PUT_LINE '$NU!ERO(% )) R_DEPT&DEPT_NO); DB!S_OUTPUT&PUT_LINE '$NO!BRE( % )) R_DEPT&DNO!BRE); DB!S_OUTPUT&PUT_LINE '$LOCALIDAD(% )) R_DEPT&LOC); END; N *) A) SET SERVEROUTPUT ON; DECLARE BEGIN UPDATE E!P SET CO!ISION #7+,,, W"ERE E!P&APELLIDO#$SALA%; END;

B)

SET SERVEROUTPUT ON; DECLARE CCO!ISION CO!ISION % TYPE; BEGIN UPDATE E!P SET CO!ISION#7+,,, SELECT * INTO CCO!ISION RO! E!P W"ERE APELLIDO#$SALA%; END;

N -) SET SERVEROUTPUT ON; DECLARE R_E!P E!P%ROWTYPE; BEGIN UPDATE E!P SET CO!ISION # 2,,,,, W"ERE CO!ISION IS NULL AND E!P_NO#77.2; SELECT * INTO R_E!P RO! E!P W"ERE E!P_NO #77.2; END;

N +) A) SET SERVEROUTPUT ON; DECLARE RDEPT DEPT%ROWTYPE; BEGIN INSERT INTO RDEPT VALUES '+,/$RR""%/$!ADRID%); SELECT * INTO RDEPT RO! DEPT W"ERE DEPT_NO #+,; END; B) SET SERVEROUTPUT ON; DECLARE RE!P E!P %ROWTYPE; BEGIN INSERT INTO DEPT VALUES '+,/$RR""%/$!ADRID%); SELECT * INTO RE!P RO! DEPT W"ERE DEPT_NO #+,; END; SET SERVEROUTPUT ON; DECLARE RE!P E!P %ROWTYPE; APELL_DIRE E!P&APELLIDO%TYPE; DEPT_NO!BRE DEPT&DNO!BRE%TYPE; BEGIN SELECT * INTO RE!P RO! E!P W"ERE E!P_NO #7+00; I RE!P&CO!ISION IS NULL T"EN DB!S_OUTPUT&PUT_LINE'$SIN CO!ISION%)) DEPT_NO!BRE); END; N 7) SET SERVEROUTPUT ON; DECLARE SAL E!P&SALARIO%TYPE; BEGIN SELECT !IN'SALARIO) INTO SAL RO! E!P; UPDATE E!P SET SALARIO # SALARIO1SAL W"ERE DEPT_NO #*,; END;

N 0)

N .) SET SERVEROUTPUT ON; DECLARE RSALA SALA%ROWTYPE; CODIGO "OSPITAL&"OSPITAL_COD%TYPE; BEGIN 2 SELECT "OSPITAL_COD INTO CODIGO RO! "OSPITAL W"ERE NO!BRE#$PROVINCIAL%; 2 SELECT * INTO RSALA RO! SALA W"ERE SALA_COD#* AND "OSPITAL_COD#CODIGO; DB!S_OUTPUT&PUT_LINE 'RSALA & ____)) RSALA & _____))); END; N 3) SET SERVEROUTPUT ON; DECLARE SAL PLANTILLA & SALARIO%TYPE; BEGIN SELECT AVG 'SALARIO) INTO SAL RO! PLANTILLA; UPDATE PLANTILLA SET SALARIO # SALARIO*4&4,; W"ERE SALARIO5SAL; END; N 4,) SET SERVEROUTPUT ON; DECLARE SAL_!ED PLANTILLA & SALARIO%TYPE; BEGIN SELECT AVG 'SALARIO) INTO SAL_!ED RO! PLATILLA W"ERE UNCION#$EN ER!ERO% OR UNCION#$EN ER!ERA%; UPDATE PLANTILLA SET SALARIO #SALARIO*,&3+ W"ERE SALARIO 6SAL_!ED AND UNCION#%EN ER!ERO%; END;

PAG +,& N 4) CREATE OR REPLACE PROCEDURE VER_E!PLE IS CURSOR C_E!PLE IS SELECT APELLIDO/ EC"A_ALT RO! E!PLE ORDER BY APELLIDO;( V_APELLIDO E!PLE&APELLIDO%TYPE; V_ EC"A E!PLE & EC"A_ALT%TYPE; BEGIN OPEN C_E!PLE; LOOP ETC" C_E!PLE INTO V_APELLIDO/V_ EC"A; E7IT W"EN C_E!PLE %NOT OUND; DB!S_OUTPUT&PUT_LINE 'V_APELLIDO )) $*% )) V_ EC"A)( END LOOP; CLOSE C_E!PLE; END VER_E!PLE; N 2) CREATE OR REPLACE PROCEDURE VER_E!PLE_DEPART IS CURSOS C_E!PLE IS SELECT DNO!BRE/ COUNT'E!P_NO) RO! E!PLE E/ DEPART D W"ERE D&DEPT_NO #E& DEPT_NO GROUP BY DNO!BRE; V_DNO!BRE DEPART&DNO!BRE%TYPE; V_NU!_E!PLE NU!BER'2); BEGIN OPEN C_E!PLE; LOOP ETC" C_E!PLE INTO V_DNO!BRE/V_NU!_E!PLE; E7IT W"EN C_E!PLE%NOT OUND; DB!S_OUTPUT&PUT_LINE 'V_DNO!BRE )) $*%)) V_NU!_E!PLE); END LOOP; CLOSE C_E!PLE; END VER_E!PLE_DEPART;

N *) CREATE OR REPLACE PROCEDURE VER_E!PLE_APELL 'CADENA VARC"AR 2) IS CAD VARC"AR2'4,); CURSOR C_E!PLE IS SELECT APELLIDO/ E!P_NO RO! E!PLE W"ERE APELLIDO LI8E CAD; V_APELLIDO E!PLE&APELLIDO%TYPE; V_E!P_NO E!PLE&E!P_NO%TYPE; BEGIN CAD(# $%%)) CADENA )) $%%; OPEN C_E!PLE; LOOP ETC" C_E!PLE INTO V_APELLIDO/V_E!P_NO; E7IT W"EN C_E!PLE %NOT OUND; DB!S_OUTPUT&PUT_LINE 'V_APELLIDO )) $*% )) V_E!P_NO); END LOOP; DB!S_OUTPUT&PUT_LINE '$N E!PLEADOS( % )) C_E!PLE%ROWCOUNT); CLOSE C_E!PLE; END VER_E!PLE_APELL; N -) CREATE OR REPLACE PROCEDURE E!P_+!A7SAL IS CURSOR C_E!P IS SELECT APELLIDO/ SALARIO RO! E!PLE ORDER BY SALARIO DESC; VR_E!P C_E!P%ROWTYPE; I NU!BER; BEGIN I( # 4; OPEN C_E!P; ETC" C_E!P INTO VR_E!P; W"ILE C_E!P % OUND AND I5 #+ LOOP DB!S_OUTPUT&PUT_LINE 'VR_E!P&APELLIDO )) $*% )) VR_E!P&SALARIO ); ETC" C_E!P INTO VR_E!P; I( #I14; END LOOP; CLOSE C_E!P; END E!P_+!A7SAL;

N - 9) BEGIN I(#4; OPEN C_E!PLE; LOOP W"ILE I5#+ ETC" C_E!P INTO VR_E!P; E7IT W"EN C_E!P%NOT OUND; DB!S_OUTPUT&PUT_LINE 'VR_E!P&APELLIDO )) $*% )) VR_E!P&SALARIO); I(#I14; END LOOP;

N +) CREATE OR REPLACE PROCEDURE E!P_2!INSAL IS CURSOR C_E!P IS SELECT APELLIDO/O ICIO/SALARIO RO! E!PLE ORDER BY O ICIO/SALARIO; VR_E!P C_E!P %ROWTYPE; O ICIO_ANT E!PLE&O ICIO%TYPE; I NU!BER; BEGIN OPEN C_E!PLE; O ICIO_ANT (#$*%; LOOP ETC" C_E!P INTO VR_E!P; E7IT W"EN C_E!P%NOT OUND; I O ICIO_ANT(# VR_E!P&O ICIO; I(#4; END I ; I I(# 2 T"EN DB!S_OUTPUT&PUT_LINE 'VR_E!P&O ICIO )) $*%))VR_E!P&APELLIDO )) $*% )) VR_E!P&SALARIO); END I ; I(#I14; END LOOP; CLOSE C_E!P; END E!P_2!INSAL;

También podría gustarte