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:
ese error me aparece ORA-06550: line 19, column 14: PLS-00382: expression is of wrong type ORA-06550: line 19, column 3: PL/SQL: Statement ignored