Código SQL:
Ver original
CREATE TABLE TRABAJADOR ( NOMBRE VARCHAR(50), APELLIDOS VARCHAR(50), DNI VARCHAR(10), CATEGORIA CHAR(20), CHECK (CATEGORIA IN ('Encargado','Dependiente')), HORAS_EXT INTEGER, NUM_SEG_SOCIAL CHAR(11), SEXO CHAR(20), CHECK(SEXO IN('Hombre','Mujer')), TELEFONO CHAR(9), EMAIL VARCHAR(50), DIRECCION VARCHAR(100), ID_TRABAJADOR INTEGER, PRIMARY KEY(ID_TRABAJADOR) ); CREATE TABLE NOMINA (SALARIO NUMERIC, FECHA_EXPEDICION DATE, ID_NOMINA INTEGER, PRIMARY KEY(ID_NOMINA) ); CREATE TABLE NOM_TRA (ID_NOMINA INTEGER, ID_TRABAJADOR INTEGER, PRIMARY KEY(ID_NOMINA, ID_TRABAJADOR), FOREIGN KEY(ID_NOMINA) REFERENCES NOMINA( ID_NOMINA), FOREIGN KEY(ID_TRABAJADOR)REFERENCES TRABAJADOR( ID_TRABAJADOR) );
Y quiero hacer un procedure que modificque el salario según las horas extras que haya hecho cada trabajador. Tengo este procedure:
Código SQL:
Ver original
CREATE OR REPLACE PROCEDURE horas_extra(dni VARCHAR) IS res NUMERIC; horasx INTEGER; identi INTEGER; identificador INTEGER; identificadorNom INTEGER; salariox NUMERIC; BEGIN SELECT ID_TRABAJADOR INTO identi FROM TRABAJADOR WHERE TRABAJADOR.dni=dni; SELECT ID_TRABAJADOR INTO identificador FROM NOM_TRA WHERE NOM_TRA.ID_TRABAJADOR=identi; SELECT ID_NOMINA INTO identificadorNom FROM NOM_TRA WHERE NOM_TRA.ID_TRABAJADOR=id_trabajador; SELECT HORAS_EXT INTO horasx FROM TRABAJADOR WHERE TRABAJADOR.ID_TRABAJADOR=identificador; SELECT SALARIO INTO salariox FROM NOMINA WHERE NOMINA.ID_NOMINA=identificadorNom; res:=salariox+horasx*7; UPDATE NOMINA SET SALARIO=res WHERE NOMINA.ID_NOMINA=identificadorNom; END horas_extra;
Cuando pruebo el procedure me sale un error que dice "invalid identifier"--->
Código SQL:
Ver original
Error SQL: ORA-00904: "HORAS_EXTRA": invalid identifier 00904. 00000 - "%s: invalid identifier" *Cause: *Action:
No sé qué pasa, si alguien me quiere echar una mano se lo agradecería.
Gracias, un saludo.