Conceptos Esenciales de Oracle PL/SQL: Funciones, Triggers y Optimización de Consultas

Enviado por Programa Chuletas y clasificado en Informática y Telecomunicaciones

Escrito el en español con un tamaño de 5,64 KB

Conceptos Esenciales de Oracle PL/SQL y Objetos de Base de Datos

A continuación, se presenta una validación de conocimientos técnicos sobre objetos de base de datos Oracle, PL/SQL, y componentes de desarrollo.

Funciones Almacenadas (Stored Functions) y Eficiencia

  1. ¿Qué afirmación es correcta?

    d. Las Stored Functions pueden incrementar la eficiencia de las consultas al realizar funciones directamente en la consulta en lugar de en la aplicación.

Record Groups y Tiempo de Diseño

  1. ¿Qué dos estamentos definen un Static Record Group?

    • b. El Record Group no está asociado a una consulta.
    • El Record Group puede ser creado y modificado solo en tiempo de diseño.

Triggers y Restricciones de Negocio

  1. Identifique las instrucciones que permiten que el aumento de sueldo no sea mayor a un décimo del total.

    d. Implementación mediante un TRIGGER:

    
    CREATE OR REPLACE TRIGGER check_sal 
    BEFORE UPDATE OF sal ON emp
    WHEN (new.sal < old.sal OR new.sal > old.sal * 1.1)
    BEGIN
        RAISE_APPLICATION_ERROR ( - 20508, 'Do not decrease salary nor increase by more than 10%');
    END;
            

Packages en PL/SQL

Estructuras y Componentes

¿Qué estructuras pueden ser incluidas en un PACKAGE?

  • Cursor
  • Constante

Tipos de Datos

El tipo de datos previo (en cuanto a cumplir una función similar) a LOB es LONG.

  1. Afirmaciones Correctas sobre Packages

    Considere dos afirmaciones correctas en el siguiente listado:

    • d. Es posible definir que la construcción del package es privada. Los packages pueden incluirse uno en otro.
    • e. El contenido de un package puede ser compartido por muchas aplicaciones. Es posible definir que la construcción del package es privada.

Oracle Forms y Alertas

  1. ¿Cuál de las siguientes aplicaciones no puede ser realizada en ORACLE FORMS?

    c. Software embebido.

  2. Elija dos afirmaciones correctas sobre Packages:

    • c. Un package se carga en memoria cada vez que se llama (o la primera vez que se referencia).
    • El contenido de un package puede ser compartido por muchas aplicaciones.
    • e. No existen dos afirmaciones correctas en el listado. (Nota: Esta opción se mantiene según el texto original).

Manejo de Alertas en Interfaz

¿Con qué instrucciones podemos conocer el resultado de la acción del usuario sobre un mensaje de ALERTA?

a. Verificar el valor devuelto por la función SHOW_ALERT para ver si es ALERT_BUTTON_1, ALERT_BUTTON_2 o ALERT_BUTTON_3.

Ejemplos de Código PL/SQL y Errores Comunes

Uso de Funciones en Consultas SQL

Definición de función (ejemplo parcial):


CREATE OR REPLACE FUNCTION CALC_PLAYER_AVG
    (V_ID IN PLAYER_BAT_STAT.PLAYER_ID%TYPE)
    -- ... (cuerpo de la función omitido)

Llamada correcta desde SELECT:

a. SELECT CALC_PLAYER_AVG(PLAYER_ID) FROM PLAYER_BAT_STAT;

Declaración de Variables y Errores de Compilación


SET SERVEROUTPUT ON
DECLARE
    X NUMBER;
    V_SAL NUMBER;
    V_found VARCHAR2(10) := TRUE;

a. Error, pues la variable Y no está declarada. (Respuesta basada en el contexto original del ejercicio).

Error de Sintaxis en Declaración VARCHAR2


DECLARE
    A VARCHAR2; -- Error: falta especificar el tamaño
    B NUMBER;
BEGIN
    A := '12';
    B := A;
END;

a. Falla, pues un VARCHAR2 debe especificar el tamaño.

Triggers y Nivel de Ejecución


CREATE OR REPLACE TRIGGER CALC_TEAM_AVG 
AFTER INSERT ON PLAYER 
BEGIN 
    INSERT INTO PLAYER_BAT_STAT (PLAYER_ID, ...);
    -- ...

a. Row (Respuesta que probablemente hace referencia al nivel de trigger).

Procedimientos Almacenados y Parámetros por Nombre


CREATE OR REPLACE PROCEDURE add_dept 
(
    p_dept_name VARCHAR2 DEFAULT placeholder,
    p_location VARCHAR2 DEFAULT Boston
)
-- ...

Llamada utilizando parámetros por nombre:

d. add_dept(p_location => 'New York');

Packages y Visibilidad


CREATE OR REPLACE PACKAGE bonus IS
    g_max_bonus NUMBER := .99;
    FUNCTION calc_bonus (p_e -- ...

Usted puede llamar la función del package BONUS.CALC_SALARY desde un SELECT contra la tabla EMPLOYEES.

Restricciones de Funciones en Consultas SQL

  1. ¿Es posible llamar desde un SELECT una función que modifica la misma tabla que se consulta?

    Falso. Al devolver un valor puede ser llamada como parte de una expresión, pero no puede modificar la tabla consultada (error de tabla mutante).

  2. La única forma de pasar parámetros a una función es posicionalmente.

    Falso. También puede ser por nombre, de modificador o dinámicos (referencia a notación por nombre y posicional).

Entradas relacionadas: