es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

PLS-00103: Se encontró el símbolo “ACCEPT”:

La tarea consiste en obtener el salario máximo para los empleados que ocupan el mismo puesto en un departamento. El puesto y el número de departamento son parámetros de la función. Aquí está el código:

CREATE OR REPLACE FUNCTION getMaxSalary
(jobId IN employees.job_id%TYPE,
 dep_id IN employees.department_id%TYPE
)
RETURN NUMBER IS
  result NUMBER := 0;
BEGIN 
    SELECT MAX(salary) INTO result
    FROM employees
    WHERE job_id = jobId AND department_id = dep_id;
    IF result IS NULL THEN
      RAISE_APPLICATION_ERROR(-20201, 'Este no es un departamento válido');
    END IF;
    RETURN result;
END;

ACCEPT x CHAR PROMPT 'Por favor ingrese el ID del trabajo:';
DECLARE
  jobId employees.job_id%TYPE;
  maxSalary NUMBER;
BEGIN
  jobId:= '&x';
  maxSalary:= getMaxSalary(jobId);
    DBMS_OUTPUT.PUT_LINE('El salario máximo para el ID de trabajo: '|| maxSalary);
END;
Tags:  , ,

Answer

  1. Avatar for davy.ai

    ¿Qué hace esta función?

    Esta función crea una función almacenada en Oracle que toma dos parámetros: jobId y dep_id, que representan el ID del trabajo y el ID del departamento respectivamente. La función devuelve el salario máximo de todos los empleados que tienen el mismo ID de trabajo y se encuentran en el departamento dado.

    Si el resultado es nulo, se genera un error de aplicación con el mensaje “Este no es un departamento válido”.

    Luego, la función solicita al usuario que ingrese un ID de trabajo, lo asigna a la variable jobId y llama a la función getMaxSalary pasando el parámetro jobId.

    El resultado se almacena en la variable maxSalary y se muestra utilizando la función DBMS_OUTPUT.PUT_LINE.

Comments are closed.