Ver Mensaje Individual
  #1 (permalink)  
Antiguo 12/05/2015, 09:40
Avatar de blueMuffin010
blueMuffin010
 
Fecha de Ingreso: mayo-2015
Ubicación: Sevilla
Mensajes: 19
Antigüedad: 9 años
Puntos: 0
Pregunta Error procedure SQL

Buenas, tengo las siguientes tablas:

Código SQL:
Ver original
  1. CREATE TABLE TRABAJADOR
  2.                       (
  3.                       NOMBRE VARCHAR(50),
  4.                       APELLIDOS VARCHAR(50),
  5.                       DNI VARCHAR(10),
  6.                       CATEGORIA CHAR(20), CHECK (CATEGORIA IN ('Encargado','Dependiente')),
  7.                       HORAS_EXT INTEGER,
  8.                       NUM_SEG_SOCIAL CHAR(11),
  9.                       SEXO CHAR(20), CHECK(SEXO IN('Hombre','Mujer')),
  10.                       TELEFONO CHAR(9),
  11.                       EMAIL VARCHAR(50),
  12.                       DIRECCION VARCHAR(100),
  13.                       ID_TRABAJADOR INTEGER,
  14.                       PRIMARY KEY(ID_TRABAJADOR)
  15.                       );
  16.  
  17.  
  18. CREATE TABLE NOMINA
  19.                    (SALARIO NUMERIC,
  20.                     FECHA_EXPEDICION DATE,
  21.                     ID_NOMINA INTEGER,
  22.                     PRIMARY KEY(ID_NOMINA)
  23.                    );
  24.  
  25. CREATE TABLE NOM_TRA
  26.                     (ID_NOMINA INTEGER,
  27.                     ID_TRABAJADOR INTEGER,
  28.                     PRIMARY KEY(ID_NOMINA, ID_TRABAJADOR),
  29.                     FOREIGN KEY(ID_NOMINA) REFERENCES NOMINA( ID_NOMINA),
  30.                     FOREIGN KEY(ID_TRABAJADOR)REFERENCES TRABAJADOR( ID_TRABAJADOR)
  31.                     );

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
  1. CREATE OR REPLACE PROCEDURE horas_extra(dni VARCHAR)
  2. IS res  NUMERIC;
  3. horasx INTEGER;
  4. identi INTEGER;
  5. identificador INTEGER;
  6. identificadorNom INTEGER;
  7. salariox NUMERIC;
  8.  
  9. BEGIN
  10. SELECT ID_TRABAJADOR INTO identi FROM TRABAJADOR WHERE TRABAJADOR.dni=dni;
  11.  
  12. SELECT ID_TRABAJADOR INTO identificador FROM NOM_TRA WHERE NOM_TRA.ID_TRABAJADOR=identi;
  13. SELECT ID_NOMINA INTO identificadorNom FROM NOM_TRA WHERE NOM_TRA.ID_TRABAJADOR=id_trabajador;
  14.  
  15. SELECT HORAS_EXT INTO horasx FROM TRABAJADOR WHERE TRABAJADOR.ID_TRABAJADOR=identificador;
  16. SELECT SALARIO INTO salariox FROM NOMINA WHERE NOMINA.ID_NOMINA=identificadorNom;
  17. res:=salariox+horasx*7;
  18.  
  19. UPDATE NOMINA SET SALARIO=res WHERE NOMINA.ID_NOMINA=identificadorNom;
  20.  
  21.  
  22. END horas_extra;


Cuando pruebo el procedure me sale un error que dice "invalid identifier"--->
Código SQL:
Ver original
  1. Error SQL: ORA-00904: "HORAS_EXTRA": invalid identifier
  2. 00904. 00000 -  "%s: invalid identifier"
  3. *Cause:    
  4. *Action:

No sé qué pasa, si alguien me quiere echar una mano se lo agradecería.
Gracias, un saludo.

Última edición por gnzsoloyo; 12/05/2015 a las 09:57