Fórum Erro com store procedure #390912
21/11/2010
0
Olá pessoal,
estou tentando fazer a store procedure abaixo:
Ao fazer:
Select * from retorna_aniversariantes(0, 100, current_date, '')
Recebo a seguinte mensagem de erro:
estou tentando fazer a store procedure abaixo:
SET TERM !!; CREATE OR ALTER PROCEDURE RETORNA_ANIVERSARIANTES(INICIO INTEGER, FIM INTEGER, DATA_ZERO DATE, LOGIN_IN VARCHAR(30)) RETURNS (NOME VARCHAR(100), IDENTIFICADOR INTEGER, NOME2 VARCHAR(100), DATA DATE, TIPO_PESSOA INTEGER, IDENTIFICADOR_PF INTEGER, FONE1 VARCHAR(15), FONE2 VARCHAR(15), FONE3 VARCHAR(15), FONE4 VARCHAR(100), DIA INTEGER, MES INTEGER) AS BEGIN FOR SELECT D.IDENTIFICADOR, D.NOME, DATA, FONE_RESIDENCIAL, FONE_CELULAR, FONE_COMERCIAL, D.EMAIL, PF.NOME, PF.IDENTIFICADOR FROM PESSOAFISICA PF INNER JOIN DEPENDENTE D ON D.ID_PESSOA = PF.IDENTIFICADOR WHERE (EXTRACT(MONTH FROM DATA_NASCIMENTO)*100)+EXTRACT(DAY FROM DATA_NASCIMENTO) between :INICIO and :FIM and DATA_NASCIMENTO <> :DATA_ZERO AND ((PF.LOGIN = :LOGIN_IN) OR (PUBLICA=1)) INTO :IDENTIFICADOR, :NOME, :DATA, :FONE1, :FONE2, :FONE3, :FONE4, :NOME2, :IDENTIFICADOR_PF DO BEGIN DIA = EXTRACT(DAY FROM DATA); MES = EXTRACT(MONTH FROM DATA); TIPO_PESSOA = 3; SUSPEND; END FOR SELECT IDENTIFICADOR, NOME, DATA_NASCIMENTO, FONE_RESIDENCIAL, FONE_CELULAR, FONE_COMERCIAL, EMAIL, APELIDO FROM PESSOAFISICA WHERE (EXTRACT(MONTH FROM DATA_NASCIMENTO)*100)+EXTRACT(DAY FROM DATA_NASCIMENTO) between :INICIO and :FIM and DATA_NASCIMENTO <> :DATA_ZERO AND ((LOGIN = :LOGIN_IN) OR (PUBLICA=1)) INTO :IDENTIFICADOR, :NOME, :DATA, :FONE1, :FONE2, :FONE3, :FONE4, :NOME2 DO BEGIN DIA = EXTRACT(DAY FROM DATA); MES = EXTRACT(MONTH FROM DATA); TIPO_PESSOA = 0; IDENTIFICADOR_PF = -1; SUSPEND; END FOR SELECT IDENTIFICADOR, NOME, DATA, FONE, FONE_FAX, FONE_CEL, EMAIL, RS FROM PESSOAJURIDICA WHERE (EXTRACT(MONTH FROM DATA)*100)+EXTRACT(DAY FROM DATA) between :INICIO and :FIM and DATA <> :DATA_ZERO AND ((LOGIN = :LOGIN_IN) OR (PUBLICA=1)) INTO :IDENTIFICADOR, :NOME, :DATA, :FONE1, :FONE2, :FONE3, :FONE4, :NOME2 DO BEGIN DIA = EXTRACT(DAY FROM DATA); MES = EXTRACT(MONTH FROM DATA); TIPO_PESSOA = 1; IDENTIFICADOR_PF = -1; SUSPEND; END END!! SET TERM ; !!
Ao fazer:
Select * from retorna_aniversariantes(0, 100, current_date, '')
Recebo a seguinte mensagem de erro:
ISC ERROR CODE:335544334 ISC ERROR MESSAGE: conversion error from string "70E681D5D5BE464B9DE7E5E9D0B53A0C" At procedure 'RETORNA_ANIVERSARIANTES'
Carlos Phelippe
Curtir tópico
+ 0
Responder
Posts
22/11/2010
Carlos Phelippe
Com a ajuda do colega Paulo achei o que tava fazendo de errado..
Tinha um campo varchar(32) que estava tratando-o como inteiro.
Valeu + uma vez Paulo ;)
Tinha um campo varchar(32) que estava tratando-o como inteiro.
Valeu + uma vez Paulo ;)
Responder
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)