Skip to content

reto3  #1

@valeria03

Description

@valeria03

@daton

CREATE TABLE EMPLEADO(ID_EMPLEADO INTEGER,NOMBRE VARCHAR2(50),SUELDO FLOAT,FECHA DATE,CONSTRAINT PK_ID_EMPLEADO PRIMARY KEY (ID_EMPLEADO));

2 SELECT * FROM EMPLEADO;

3 CREATE SEQUENCE SEC_EMPLEADO START WITH 1 INCREMENT BY 1 NOMAXVALUE;

4 SET SERVEROUTPUT ON;
5 CREATE OR REPLACE PROCEDURE GUARDAR_EMPLEADO(NOMBRE_IN IN VARCHAR2,SUELDO_IN IN FLOAT)AS
6 MY_ID_EMPLEADO INTEGER;
7 FECHA_AC DATE := SYSDATE;

8 BEGIN
9 SELECT SEC_EMPLEADO.NEXTVAL INTO MY_ID_EMPLEADO FROM DUAL;
10 INSERT INTO EMPLEADO(ID_EMPLEADO,NOMBRE,SUELDO,FECHA) VALUES (MY_ID_EMPLEADO,NOMBRE_IN,SUELDO_IN,FECHA_AC);
11 DBMS_OUTPUT.PUT_LINE('EMPLEADO GUARDADO CON EXITO!!!!');
12 END;
13 /

14 BEGIN
15 GUARDAR_EMPLEADO('Valeria',5500.20);
16 END;
17 /

18 CREATE OR REPLACE PROCEDURE ACTUALIZAR_EM(ID_EMPLEADO_IN IN INTEGER,NOMBRE_IN IN VARCHAR2,PORCENTAJE_IN IN FLOAT)AS
19 CURSOR CURSOR_ACTUALIZAR_EMP IS SELECT * FROM EMPLEADO WHERE ID_EMPLEADO = ID_EMPLEADO_IN AND NOMBRE LIKE NOMBRE_IN FOR UPDATE;
20 HOY INTEGER := EXTRACT (DAY FROM SYSDATE);

21 BEGIN
22 IF HOY != 15 AND HOY != 1 THEN
23 RAISE_APPLICATION_ERROR(-20001,'ERROR, SOLO LOS DIAS 1 Y 15 DE CADA MES');
24 ELSE
25 IF PORCENTAJE_IN < 0 OR PORCENTAJE_IN > 100 THEN
26 RAISE_APPLICATION_ERROR(-20002,'ERROR!!!, EL PORCENTAJE DEBE SER UN NUMERO ENTRE 0 Y 100');
27 ELSE
28 FOR REC IN CURSOR_ACTUALIZAR_EMPLEADO
29 LOOP
30 UPDATE EMPLEADO SET SUELDO = REC.SUELDO * (1+(PORCENTAJE_IN/100)) WHERE CURRENT OF CURSOR_ACTUALIZAR_EMPLEADO;
31 END LOOP;
32 END IF;
33 END IF;
34 END;
35 /

Metadata

Metadata

Assignees

Labels

No labels
No labels

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions