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.

Estoy obteniendo un error al ejecutar el paquete PL/SQL, funcionaba hasta la creación del paquete.

crear tabla empleado(
id_empleado number(10) NOT NULL,
nombre_empleado varchar2(50),
salario_empleado number(10),
rol_empleado varchar2(50),
edad_empleado number(10),
CONSTRAINT pk_empleado PRIMARY KEY(id_empleado)
);

insert into empleado(id_empleado, nombre_empleado, salario_empleado, rol_empleado, edad_empleado) values(12,'ravi',5676,'dse',23);
insert into empleado(id_empleado, nombre_empleado, salario_empleado, rol_empleado, edad_empleado) values(13,'sai',85676,'tester',21);
insert into empleado(id_empleado, nombre_empleado, salario_empleado, rol_empleado, edad_empleado) values(15,'chandu',4676,'developer',28);
insert into empleado(id_empleado, nombre_empleado, salario_empleado, rol_empleado, edad_empleado) values(16,'raju',7676,'tech lead',22);
insert into empleado(id_empleado, nombre_empleado, salario_empleado, rol_empleado, edad_empleado) values(17,'teja',9676,'manager',29);

create or replace package hr
as
    procedure contratar(enu in number, enombre in varchar2, salario in  number, erol in varchar2, edad in number);
    procedure despedir(enu in number);
end;

procedure contratar(enu IN NUMBER, enombre IN VARCHAR2, salario IN NUMBER, erol IN VARCHAR2, edad IN NUMBER)
IS
BEGIN
    INSERT INTO empleado (id_empleado, nombre_empleado, salario_empleado, rol_empleado, edad_empleado)
    VALUES (enu, enombre, salario, erol, edad);

    COMMIT;
END contratar;

procedure despedir(enu IN NUMBER)
IS
BEGIN
    DELETE FROM empleado
    WHERE id_empleado = enu;

    COMMIT;
END despedir;

END;

–Obteniendo este error

Tags:  , ,

Answer

  1. Avatar for davy.ai

    El error es causado por el uso del símbolo ampersand (&) en las declaraciones de inserción. Este símbolo se utiliza comúnmente en SQL*Plus o SQL Developer para solicitar al usuario valores de entrada, pero no se puede utilizar directamente en el código. Para resolver el problema, reemplace el símbolo ampersand con comillas simples alrededor de los valores de entrada:

    insert into employee(employee_id, employee_name, employee_sal, employee_role, employee_age)
    values(12,'ravi',5676,'dse',23);
    insert into employee(employee_id, employee_name, employee_sal, employee_role, employee_age)
    values(13,'sai',85676,'tester',21);
    insert into employee(employee_id, employee_name, employee_sal, employee_role, employee_age)
    values(15,'chandu',4676,'developer',28);
    insert into employee(employee_id, employee_name, employee_sal, employee_role, employee_age)
    values(16,'raju',7676,'tech lead',22);
    insert into employee(employee_id, employee_name, employee_sal, employee_role, employee_age)
    values(17,'teja',9676,'manager',29);
    

    Después de corregir las declaraciones de inserción, la instrucción CREATE PACKAGE debería ejecutarse sin errores.

Comments are closed.