Ver Mensaje Individual
  #1 (permalink)  
Antiguo 24/12/2015, 06:53
Avatar de cranmp
cranmp
 
Fecha de Ingreso: enero-2015
Ubicación: santiago
Mensajes: 5
Antigüedad: 9 años, 3 meses
Puntos: 0
Pregunta Dudas con date

Hola buenos dias

tengo un problema, estoy generando un SP en oracle 11g que recibe los parametros de entrada para actualizar o insertar a una persona, el tema es que la fecha de nacimiento, haga lo que haga me da un error de incompatibilidad de typos de datos dejare el codigo y el error que me da al probar el sp, si alguno me puede hechar una mano, se los agradeceria

Saludos
Código:
CREATE OR REPLACE PROCEDURE ESPADM.SP_UPS_DATOS_PERS
--sp Encargado de actualizar o insertar nuevas personas segun si el rut exista o no en la tabla Personal
(vRUT               IN  NUMBER,
 vNOMBRE            IN  VARCHAR2,
 vAPELLIDOMATERNO   IN  VARCHAR2,
 vAPELLIDOPATERNO   IN  VARCHAR2,
 vFECNAC            IN  DATE,
 vSEXO              IN  NUMBER,
 vPROFESION         IN  NUMBER,
 vESTADOCIVIL       IN  NUMBER,
 vNACIONALIDAD      IN  NUMBER,
 COD_MENSAJE        OUT VARCHAR2,
 DESCRIP_MENSAJE    OUT VARCHAR2) IS
 
 ENCONTRADO NUMBER(10):=0;
 
  BEGIN
       
        SELECT RUT
          INTO ENCONTRADO
          FROM ESPADM.PERSONAL 
         WHERE vRUT =RUT;
                 
          IF ENCONTRADO !=0 THEN
           UPDATE ESPADM.PERSONAL SET        
                   DV                   = ESPADM.FNC_DV(ENCONTRADO),-- funciontion que calcula el digito verificador y devuelve un char
                   FECHA_INGRESO        = SYSDATE,
                   NOMBRES              = vNOMBRE,
                   APELLIDOMATERNO      = vAPELLIDOMATERNO,
                   APELLIDOPATERNO      = vAPELLIDOPATERNO,
                   FECHA_NACIMIENTO     = TO_DATE(TO_CHAR(vFECNAC,'DD-MM-YYYY'),'DDMMYYYY'),
                   CODIGOSEXO           = vSEXO,
                   CODIGOESTADOCIVIL    = vESTADOCIVIL,
                   CODIGOPROFESION      = vPROFESION,
                   CODIGONACIONALIDAD   = vNACIONALIDAD,
                   CODIGOCANAL          = ESPADM.SQ_COD_CAN_PB.NEXTVAL,-- secuencia ciclica del 1-10
                   NUMBEROPROCESO       = TO_DATE(SYSDATE)||ESPADM.SQ_COD_CAN_PB.CURRVAL
             WHERE vRUT = RUT ;
            COMMIT;
          ELSE
          INSERT INTO ESPADM.PERSONAL
          (RUT,DV,FECHA_INGRESO,NOMBRES,APELLIDOMATERNO,APELLIDOPATERNO,FECHA_NACIMIENTO,CODIGOSEXO,
            CODIGOESTADOCIVIL,CODIGONACIONALIDAD,CODIGOPROFESION,NUMBEROPROCESO,CODIGOCANAL)
            VALUES
            (vRUT,ESPADM.FNC_DV(vRUT),SYSDATE, vNOMBRE, vAPELLIDOMATERNO, vAPELLIDOPATERNO, vFECNAC, vSEXO,vESTADOCIVIL,
             vNACIONALIDAD,vPROFESION,TO_DATE(SYSDATE)||ESPADM.SQ_COD_CAN_PB.CURRVAL,
             ESPADM.SQ_COD_CAN_PB.NEXTVAL);
  COMMIT;     
           
    END IF;       
 END;
/

Código:
ORA-06550: line 19, column 14:
PLS-00382: expression is of wrong type
ORA-06550: line 19, column 3:
PL/SQL: Statement ignored
ese error me aparece