Вы находитесь на странице: 1из 8

create or replace

FUNCTION SUMA_SALARIO_DE_CURSOR (P_CURSOR SYS_REFCURSOR)


RETURN NUMBER
IS
V_NOMBRE VARCHAR2(200);b
V_APELLIDO VARCHAR2(100);
V_SALARIO NUMBER;
TOTAL NUMBER(14,2);
BEGIN
TOTAL:=0;
LOOP
FETCH P_CURSOR INTO V_NOMBRE,V_APELLIDO,V_SALARIO;
EXIT WHEN P_CURSOR%NOTFOUND;
TOTAL:=TOTAL+V_SALARIO;
END LOOP;
RETURN TOTAL;
END;
------------------------------Mayor Fecha
create or replace function FechaContrartacion2(P_CURSOR SYS_REFCURSOR)
return DATE
as
NOMBRE VARCHAR2(100);
FECHA DATE;
FECHAMAYOR DATE;
begin
FECHAMAYOR := TO_DATE('01/01/1900');
LOOP
FETCH P_CURSOR INTO NOMBRE,FECHA;
IF FECHAMAYOR < FECHA THEN
FECHAMAYOR := FECHA

END IF;
EXIT WHEN P_CURSOR%NOTFOUND;
END LOOP;
RETURN FECHAMAYOR;
END;
1. Explique las diferencias entre las funciones INSTR(), REPLACE()
SUBSTR()

Adicional a lo que realiza cada una, es importante identificar que INSTR


devuelve un tipo de dato NUMBER a diferencia de REPLACE y SUBSTR.
REPLACE slo recibe parmetros de tipo de dato VARCHAR2 mientras que
SUBSTR de tipo VARCHAR2 y NUMBER por la posicin principalmente.
2. Explique de manera funcional el uso de la funcin MOD y presente 2
ejemplos de su uso.
La manera funcional de presentarlo es mediante una divisin. Por ejemplo:
21/4 = 5 cociente y 1 residuo, la funcin MOD devuelve el 1 (residuo)
3. Explique por qu es ms eficiente utilizar un tipo de dato DATE en lugar
de un tipo de dato VARCHAR2 en el manejo de fechas.
Porque si las fechas se manejan con el tipo de dato VARCHAR2 pueden
ocasionar errores en la operaciones con fechas. Ejemplo:
Al comparar 2 fechas como DATE
To_date(01/01/2015,dd/mm/rrrr) > To_date(31/12/2014,dd/mm/rrrr)
Es correcta la comparacin, pero si las comparo como VARCHAR2 la
comparacin es errnea porque lo opera como caracteres. Ejemplo:
01/01/2015< 31/12/2014
4. Cul es la diferencia de una funcin que retorna un cursor y una funcin
que recibe como parmetro un cursor. Presente un sustento a nivel
funcional
El sustento funcional debe presentar en un diagrama que explique que una
funcin que retorna un cursor tiene la creacin del cursor dentro de la
funcin y la funcin que recibe como parmetro un cursor ya obtiene un
cursor creado y slo lo navega o lo lee para operarlo retornando otro tipo de
dato.
5. Explique las diferencias entre usar dentro de un query where 2=1 y
where 2=2. Pruebe los siguientes querys:
Query1: select * from employees where 2=1
El resultado del query no muestra registros. No sale error.
Query2: select * from employees where 2=2

El resultado del query muestra tantos registros como registros tiene la tabla
EMPLOYEES.
La diferencia entre where 2=1 and where 2=2 es el resultado de la
comparacin si es falso no salen registros y si es verdadero todos los
registros del query o de la tabla segn sea el caso.
6. Presente 15 ejemplos de 3 TIPOS DE DATOS que conoce en ORACLE (5 de
cada uno).
Los tipos de datos ms sencillos son: NUMBER, VARCHAR2 y DATE
Ejemplos de NUMBER: 1 2 3 4 5
Ejemplos de VARCHAR2 1 2 3 4 5
Ejemplos de DATE:
To_date(19/03/2015,dd/mm/rrrr)
To_date(14/04/2015,dd/mm/rrrr)
To_date(24/07/2015,dd/mm/rrrr)
To_date(01/12/2015,dd/mm/rrrr)
To_date(15/06/2015,dd/mm/rrrr)
7. Presente 3 ejemplos de uso de la funcin TO_DATE, explique la diferencia
con TO_CHAR
To_date(25/12/2015,dd/mm/rrrr)
To_date(2015,rrrr)
To_date(18102015,ddmmrrrr)
La diferencia es que TO_DATE devuelve un tipo de dato DATE y TO_CHAR un
tipo de dato VARCHAR2. Adems, TO_CHAR slo se utiliza para dar un
formato a una fecha o transformar un NUMBER a VARCHAR2. Ejemplo
Select TO_CHAR( To_date(13/05/2015,dd/mm/rrrr),DD-MON-RRRR) from
dual
8. Realice el diagrama o pseudocdigo de una funcin
parmetro un cursor

que recibe como

y devuelve un tipo de dato fecha que puede ser la mayor fecha de


contratacin de un grupo
de empleados.
Utilizar el documento de funciones y cursores parte II y represente en un
diagrama o pseudocdigo.
9. Qu funciones de manejo de caracteres se pueden utilizar de una manera
eficiente para representar la inicial de un nombre. Y qu funcin para el
WHERE de un query donde se solicite por ejemplo los empleados que
tengan como inicial la letra B.

Si se utiliza dentro del query junto al SELECT utilice SUBSTR(CAMPO,1,1). Si


se utiliza en el WHERE utilice INSTR(CAMPO,B)=1.
10. Cul es la diferencia en el uso de || y de concat?
El uso de || es ms sencillo para unir ms de 2 cadenas. Ejemplo
Select CADENA1 || CADENA2|| CADENA3 from dual.

CASE expr WHEN comparison_expr1 THEN


return_expr1
[WHEN comparison_expr2 THEN
return_expr2
WHEN comparison_exprn THEN
return_exprn
ELSE else_expr]
END
SELECT last_name, job_id, salary,
DECODE(job_id, 'IT_PROG', 1.10*salary,
'ST_CLERK', 1.15*salary,
'SA_REP', 1.20*salary,
salary)
REVISED_SALARY
FROM employees;
SELECT department_id,
department_name,
location_id, city

FROM departments
NATURAL JOIN locations ;
SELECT employees.employee_id,
employees.last_name,
departments.location_id, department_id
FROM employees JOIN departments
USING (department_id)
SELECT e.last_name, e.department_id,
d.department_name
FROM employees e LEFT OUTER JOIN
departments d
ON (e.department_id = d.department_id) ;

SELECT employee_id, last_name, job_id,


salary
FROM employees
WHERE salary < ANY
(SELECT salary
FROM employees
WHERE job_id = 'IT_PROG')
AND job_id <> 'IT_PROG';

Вам также может понравиться