Documentos de Académico
Documentos de Profesional
Documentos de Cultura
PL / SQL
9-2
Usar funciones en sentencias SQL
PLSQL 9-2
Copyright © 2020, Oracle y / o sus afiliados. Reservados todos los derechos. 3
Usar funciones en sentencias SQL
Propósito
• En esta lección, aprenderá a utilizar funciones dentro de
sentencias SQL
• Si la instrucción SQL procesa muchas filas en una tabla, la
función se ejecuta una vez por cada fila procesada por la
instrucción SQL.
• Por ejemplo, puede calcular el impuesto que debe pagar
cada empleado utilizando una sola función.
PLSQL 9-2
Copyright © 2020, Oracle y / o sus afiliados. Reservados todos los derechos. 4
Usar funciones en sentencias SQL
¿Qué es una función definida por el usuario?
• Una función definida por el usuario es una función creada por el
programador PL / SQL
• GET_DEPT_NAME y CALCULATE_TAX son ejemplos de funciones
definidas por el usuario, mientras que UPPER, LOWER y LPAD
son ejemplos de funciones definidas por el sistema
proporcionadas automáticamente por Oracle
• La mayoría de las funciones del sistema, como UPPER,
LOWER y LPAD se almacenan en un paquete denominado
SYS.STANDARD
• Los paquetes se tratan en una sección posterior.
• Estas funciones del sistema a menudo se denominan
funciones integradas.
PLSQL 9-2
Copyright © 2020, Oracle y / o sus afiliados. Reservados todos los derechos. 5
Usar funciones en sentencias SQL
Ventajas de las funciones en sentencias SQL
• Si se usa en la cláusula WHERE de una instrucción SELECT,
las funciones pueden aumentar la eficiencia asegurando
que se devuelvan todas las filas deseadas
• Por ejemplo, en una gran base de datos de empleados,
podría tener más de un empleado con el mismo apellido
• Si usa el siguiente código, encontrará un empleado con el
apellido "Taylor", pero no el empleado cuyo apellido fue
ingresado como "taylor"
PLSQL 9-2
Copyright © 2020, Oracle y / o sus afiliados. Reservados todos los derechos. 6
Usar funciones en sentencias SQL
Ventajas de las funciones en sentencias SQL
• ¿De cuántas formas diferentes tendría que buscar para
encontrar todos los ejemplos posibles de "Taylor"?
• Al agregar la función UPPER a la cláusula WHERE, puede
encontrar todos los ejemplos con una búsqueda
SELECT * FROM employees
WHERE UPPER(last_name) = UPPER('TAylor');
PLSQL 9-2
Copyright © 2020, Oracle y / o sus afiliados. Reservados todos los derechos. 7
Usar funciones en sentencias SQL
Ventajas de las funciones en sentencias SQL
• Las funciones en sentencias SQL también pueden manipular
valores de datos.
• Por ejemplo, para un evento social de fin de año, desea
(solo por diversión) para imprimir etiquetas de nombre
para cada empleado con los caracteres invertidos, por
lo que "Mary Jones" se convierte en "senoJ yraM"
• Puede crear una función definida por el usuario
llamada reverse_name, que hace esto, luego codifica:
PLSQL 9-2
Copyright © 2020, Oracle y / o sus afiliados. Reservados todos los derechos. 8
Usar funciones en sentencias SQL
Ventajas de las funciones en sentencias SQL
•Las funciones definidas por el usuario pueden extender SQL
donde las actividades son demasiado complejos, demasiado
incómodos o no están disponibles con SQL normal
PLSQL 9-2
Copyright © 2020, Oracle y / o sus afiliados. Reservados todos los derechos. 9
Usar funciones en sentencias SQL
Ventajas de las funciones en sentencias SQL
• Puede crear una función definida por el usuario llamada
how_many_months para hacer esto
PLSQL 9-2
Copyright © 2020, Oracle y / o sus afiliados. Reservados todos los derechos. 10
Usar funciones en sentencias SQL
Función en expresiones SQL: ejemplo
• Cree una función para determinar los impuestos de cada empleado
CREATE OR REPLACE FUNCTION tax(p_value IN NUMBER)
RETURN NUMBER IS
BEGIN
RETURN (p_value * 0.08);
END tax;
11
PLSQL 9-2
Copyright © 2020, Oracle y / o sus afiliados. Reservados todos los derechos.
Usar funciones en sentencias SQL
¿Dónde puede utilizar funciones definidas por el usuario en una
instrucción SQL?
PLSQL 9-2
Copyright © 2020, Oracle y / o sus afiliados. Reservados todos los derechos. 12
Usar funciones en sentencias SQL
¿Dónde puede utilizar funciones definidas por el usuario en una
instrucción SQL?
• La función hace que este código sea más fácil de leer y mucho más fácil
de actualizar si cambia la tasa de impuestos.
PLSQL 9-2
Copyright © 2020, Oracle y / o sus afiliados. Reservados todos los derechos. 13
Usar funciones en sentencias SQL
Restricciones sobre el uso de funciones en sentencias SQL
PLSQL 9-2
Copyright © 2020, Oracle y / o sus afiliados. Reservados todos los derechos. 14
Usar funciones en sentencias SQL
Restricciones sobre el uso de funciones en sentencias SQL
PLSQL 9-2
Copyright © 2020, Oracle y / o sus afiliados. Reservados todos los derechos. 15
Usar funciones en sentencias SQL
Restricciones sobre el uso de funciones en sentencias SQL
PLSQL 9-2
Copyright © 2020, Oracle y / o sus afiliados. Reservados todos los derechos.
Usar funciones en sentencias SQL
dieciséis
Restricciones sobre el uso de funciones en sentencias SQL
PLSQL 9-2
Copyright © 2020, Oracle y / o sus afiliados. Reservados todos los derechos. 17
Usar funciones en sentencias SQL
Restricciones sobre el uso de funciones en sentencias SQL:
Ejemplo 1
CREATE OR REPLACE FUNCTION dml_call_sql(p_sal NUMBER)
RETURN NUMBER IS
BEGIN
INSERT INTO employees(employee_id, last_name, email,
hire_date, job_id, salary)
VALUES(1, 'Frost', 'jfrost@company.com', SYSDATE, 'SA_MAN', p_sal);
RETURN (p_sal + 100);
END dml_call_sql;
UPDATE employees
SET salary = dml_call_sql(2000)
WHERE employee_id = 174;
18
PLSQL 9-2
Copyright © 2020, Oracle y / o sus afiliados. Reservados todos los derechos.
Usar funciones en sentencias SQL
Restricciones sobre el uso de funciones en sentencias SQL:
Ejemplo 2
PLSQL 9-2
Copyright © 2020, Oracle y / o sus afiliados. Reservados todos los derechos. 19
Usar funciones en sentencias SQL
Terminología
Los términos clave utilizados en esta lección incluyen:
PLSQL 9-2
Copyright © 2020, Oracle y / o sus afiliados. Reservados todos los derechos. 20
Usar funciones en sentencias SQL
Resumen
En esta lección, debería haber aprendido a:
-Enumere las ventajas de las funciones definidas por el
usuario en sentencias SQL
PLSQL 9-2
Copyright © 2020, Oracle y / o sus afiliados. Reservados todos los derechos. 21
Usar funciones en sentencias SQL