Ver Mensaje Individual
  #2 (permalink)  
Antiguo 18/12/2013, 06:39
Avatar de gnzsoloyo
gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 5 meses
Puntos: 2658
Respuesta: Error en procedimiento con fecha

Hasta lo que veo, tienes al menos un error: 'wFNac' no es el parámetro de entrada wFNac, sino una cadena que dice 'wFNac'. Y lo mismo vale para 'wFInicioContrato' y 'wFFinContrato'.

Además, ¿me puedes decir qué es el primer campo, qué tipo de dato tiene, y por qué le pones una cadena vacía?

Por otro lado, estás dandonos una falsa impresión de la tabla, porque tus parámetros nos dicen que hay más campos de los que nos muestras. Cuando pongas el CREATE TABLE, pornlo COMPLETO.

Todo aquello que omitas decirnos puede ser precisamente la causa del error.

Finalmente: Se considera buena práctica que se indiquen específicamente las columnas que se ingresan, aunque se ingresen todas, y especialmente si se ingresan sólo algunas. Eso evitará errores de análisis, y ajustará la performance de la consulta.
Código SQL:
Ver original
  1. CREATE OR REPLACE PROCEDURE CREAR_EMPLEADO
  2.   (wPuesto IN puestos.oid_pue%TYPE,
  3.   wNombre IN empleados.nombre%TYPE,
  4.   wApellidos IN empleados.apellidos%TYPE,
  5.   wSexo IN empleados.sexo%TYPE,
  6.   wNIF IN empleados.nif%TYPE,
  7.   wFNac IN empleados.fnac%TYPE,
  8.   wSalario IN empleados.salario%TYPE,
  9.   wFInicioContrato IN empleados.finiciocontrato%TYPE,
  10.   wFFinContrato IN empleados.ffincontrato%TYPE)
  11. IS
  12. BEGIN
  13.     INSERT INTO empleados --(faltan las columnas)
  14.     VALUES ('', wPuesto, wNombre, wApellidos, wSexo, wNIF, TO_DATE(wFNac, 'DD/MM/YYYY'),
  15.                  wSalario, TO_DATE(wFInicioContrato, 'DD/MM/YYYY'),
  16.                  TO_DATE(wFFinContrato, 'DD/MM/YYYY'));
  17.   END;
  18.   /
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)