Welcome to Scribd, the world's digital library. Read, publish, and share books and documents. See more
Download
Standard view
Full view
of .
Look up keyword
Like this
9Activity
0 of .
Results for:
No results containing your search query
P. 1
Respuestas Oracle PL-SQL Practica 22

Respuestas Oracle PL-SQL Practica 22

Ratings: (0)|Views: 289|Likes:
Practice of Chapter 22
Introduction to Oracle: SQL and PL/SQL
Instructor Guide - Volume 1
41010GC13
Production 1.3
July 1999
ORACLE
Practice of Chapter 22
Introduction to Oracle: SQL and PL/SQL
Instructor Guide - Volume 1
41010GC13
Production 1.3
July 1999
ORACLE

More info:

Published by: Ezequiel Hernán Villanueva on Dec 29, 2010
Copyright:Attribution Non-commercial

Availability:

Read on Scribd mobile: iPhone, iPad and Android.
download as TXT, PDF, TXT or read online from Scribd
See more
See less

08/28/2013

pdf

text

original

 
Introduction to Oracle: SQL and PL/SQL, Instructor Guide, Volumen 1Práctica 22: Conceptos Avanzados de los Cursores SQL Explícitos--------------------------------------------------------------------Ejercicio 1:Use un Cursor SQL Explícito para obtener el número de departamento y el nombre de departamento desde latabla DEPT. Pase el número de departamento a otro Cursor SQL Explícito para obtener el nombre del empleado,el trabajo, la fecha de contratación y el salario de todos los empleados que trabajan en ese departamento."mero de Departamento: 10Nombre de Departamento: ACCOUNTINGKINGPRESIDENT17-NOV-915000CLARKMANAGER09-JUN-812450MILLERCLERK23-JAN-821300""mero de Departamento: 20Nombre de Departamento: RESEARCHJONESMANAGER02-APR-812978FORDANALYST03-DEC-813000SMITHCLERK17-DEC-80800SCOTTANALYST09-DEC-823000ADAMSCLERK12-JAN-831100""Número de Departamento: 30Nombre de Departamento: SALESBLAKEMANAGER01-MAY-812850MARTINSALESMAN28-SEP-911250ALLENSALESMAN20-FEB-811600TURNERSALESMAN08-SEP-811500JAMESCLERK03-DEC-81950WARDSALESMAN22-FEB-811250""mero de Departamento: 40Nombre de Departamento: OPERATIONS"Respuesta 1)------------SQL>editp22q1.sqlContenido del archivo de comandos con el bloque PL/SQL: p22q1.sql-----------------------------------------------------------------"
 
SETSERVEROUTPUTONDECLARECURSORdept_cursorISSELECTDEPTNO, DNAMEFROMDEPTORDER BY DEPTNO;v_dept_deptnoDEPT.DEPTNO%TYPE;v_dept_dnameDEPT.DNAME%TYPE;CURSORemp_cursor( p_deptno NUMBER )ISSELECTENAME, JOB, HIREDATE, SALFROMEMPWHEREDEPTNO = p_deptno;v_emp_enameEMP.ENAME%TYPE;v_emp_jobEMP.JOB%TYPE;v_emp_hiredateEMP.HIREDATE%TYPE;v_emp_salEMP.SAL%TYPE;BEGIN/* Bucle FOR efectúa implícitamente un OPEN y en cada iteración un FETCH* Además crea un Registro PL/SQL dept_record con la forma: [ DEPT.deptno  DEPT.dname ]* donde guarda temporalmente lo que obtiene del FETCH.**/FORdept_recordINdept_cursorLOOPv_dept_deptno:=dept_record.deptno;v_dept_dname:=dept_record.dname;DBMS_OUTPUT.PUT_LINE( 'Número de Departamento: '  v_dept _deptno  ' Nombre de Departamento: '  v_dept_dname);DBMS_OUTPUT.PUT_LINE( ' ' );-- Anido otro Bucle FOR para el cursor con parámetros emp_ cursorFORemp_recordINemp_cursor( v_dept_deptno )LOOPv_emp_ename:=emp_record.ename;v_emp_job:=emp_record.job;v_emp_hiredate:=emp_record.hiredate;v_emp_sal:=emp_record.sal;DBMS_OUTPUT.PUT_LINE( v_emp_ename  ' '  v_emp_job  ' '  v_emp_hiredate  ' '  v_emp_sal );END LOOP;DBMS_OUTPUT.PUT_LINE( ' ' );END LOOP; --Al finalizar el bucle FOR efectúa implícitamente un CLOSE del Cursor SQL ExplícitoEND;/SETSERVEROUTPUTOFF;"SQL>startp22q1.sqlEjercicio 2:Modifique el archivo de comandos p19q5.sql para incorporar las funcionalidades de las cláusulas FOR UPDATE y WHERE CURRENT OF"EMPNOSALSTARS-------------80007900950**********78441500***************
 
"Contenido del archivo de comandos con el Bloque PL/SQL: p19q5.sql-----------------------------------------------------------------"ACCEPTp_emp_empnoPROMPT 'Por favor ingrese el mero de empleado: ';DECLAREv_emp_empnoEMP.EMPNO%TYPE:=&p_emp_empno;v_emp_starsEMP.STARS%TYPE:=NULL;v_emp_salEMP.SAL%TYPE;BEGINSELECTNVL( ROUND( SAL / 100 ), 0 )INTOv_emp_salFROMEMPWHEREEMPNO = v_emp_empno;FOR i in 1..v_emp_sal LOOPv_emp_stars:=v_emp_stars '*';END LOOP;UPDATEEMPSETSTARS = v_emp_starsWHEREEMPNO = v_emp_empno;COMMIT;END;/"Respuesta 2)------------SQL>editp22q2.sqlContenido del archivo de comandos con el Bloque PL/SQL: p22q2.sql-----------------------------------------------------------------"ACCEPTp_emp_empnoPROMPT 'Por favor ingrese el mero de empleado: ';DECLAREv_emp_empnoEMP.EMPNO%TYPE:=&p_emp_empno;v_emp_starsEMP.STARS%TYPE:=NULL;v_emp_salEMP.SAL%TYPE;CURSORemp_stars_cursorISSELECTSTARSFROMEMPWHEREEMPNO = v_emp_empnoFOR UPDATE OFSTARSNOWAIT;BEGINSELECTNVL( ROUND( SAL / 100 ), 0 )INTOv_emp_salFROMEMPWHEREEMPNO = v_emp_empno;FOR i in 1..v_emp_sal LOOPv_emp_stars:=v_emp_stars '*';END LOOP;/* UPDATEEMP* SETSTARS = v_emp_stars* WHEREEMPNO = v_emp_empno;*//* Bucle FOR Implícitamente Abre el Cursor emp_stars_cursor y en Cada Iteración hace FETCH poniendo resultado en el Registro PL/SQL emp_stars_record

Activity (9)

You've already reviewed this. Edit your review.
1 thousand reads
1 hundred reads
zilbeztre liked this
Mireya Chillan liked this
joubo liked this
Dante Llimpe liked this
Ana Santos liked this

You're Reading a Free Preview

Download
scribd
/*********** DO NOT ALTER ANYTHING BELOW THIS LINE ! ************/ var s_code=s.t();if(s_code)document.write(s_code)//-->