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 originalCREATE OR REPLACE PROCEDURE CREAR_EMPLEADO
(wPuesto IN puestos.oid_pue%TYPE,
wNombre IN empleados.nombre%TYPE,
wApellidos IN empleados.apellidos%TYPE,
wSexo IN empleados.sexo%TYPE,
wNIF IN empleados.nif%TYPE,
wFNac IN empleados.fnac%TYPE,
wSalario IN empleados.salario%TYPE,
wFInicioContrato IN empleados.finiciocontrato%TYPE,
wFFinContrato IN empleados.ffincontrato%TYPE)
IS
BEGIN
INSERT INTO empleados --(faltan las columnas)
VALUES ('', wPuesto, wNombre, wApellidos, wSexo, wNIF, TO_DATE(wFNac, 'DD/MM/YYYY'),
wSalario, TO_DATE(wFInicioContrato, 'DD/MM/YYYY'),
TO_DATE(wFFinContrato, 'DD/MM/YYYY'));
END;
/