Ver Mensaje Individual
  #1  
Antiguo 25-07-2010
dant dant is offline
Registrado
 
Registrado: jul 2010
Posts: 3
Reputación: 0
dant Va por buen camino
Post Error de sintaxis al ejecutar procedimiento almacenado en Firebird 2.1.3

Hola a todos; soy nuevo en este foro y estoy recien aprendiendo la sintaxis SQL en firebird. Tengo el siguiente procedimiento almacenado el cual me permite ingresar nuevos registros verificando antes que estos no se repitan ( comprobando el campo código "CODPER" ):

SET TERM ^ ;
CREATE PROCEDURE INGRESARPER (
CODPER char(5),
APEPER varchar(25),
NOMPER varchar(25),
DNIPER char(8),
FNACPER date,
DIRPER varchar(30),
PROVPER varchar(25),
TELFPER varchar(12),
CELPER varchar(16),
EMAILPER varchar(30),
CARGPER varchar(25),
FINGPER date,
FCESPER date,
PLAPER char(1),
FONDPENSPER varchar(25),
CODESSPER varchar(15) )
AS
declare variable existe smallint;
BEGIN
SELECT COUNT(*) FROM REGISTROSPER WHERE REGISTROSPER.COD_PER = :codper INTO :existe;
IF (:existe = 0) THEN BEGIN
INSERT INTO REGISTROSPER VALUES (:codper, :apeper, :nomper, :dniper, :fnacper, :dirper, rovper, :telfper, :celper, :emailper, :cargper,
:fingper, :fcesper, laper, :fondpensper, :codessper);
END
END^
SET TERM ; ^

El problema es que al momento de ejecutar el procedimiento almacenado a través de esta sintaxis:

EXECUTE PROCEDURE INGRESARPER('T1000', 'Pérez Aguilar', 'Carlos Daniel', '12345897', '25/05/1990', 'Av. Larco # 846', 'Trujillo', '(044)-425810', '(044)948-654-127', 'pacd@gmail.com', 'Administrador', '15/02/2010', '15/02/2012', '1', 'SNP', 'SDF789RTY156FG5');


Me da el siguiente mensaje de error:

Message: isc_dsql_execute2 failed
SQL Message : -413
Overflow occurred during data type conversion.
Engine Code : 335544334
Engine Message :
conversion error from string "25/05/1990"

Al parecer el problema es que estoy dando mal los parámetros para los campos de tipo DATE -> conversion error from string "25/05/1990", pero no se como solucionar eso.

Agradeceria su aporte.
Responder Con Cita