PAGUE 6 MESES
LEVE 12 MESES
GARANTIR DESCONTO

Fórum Erro com store procedure #390912

21/11/2010

0

Olá pessoal,
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

Carlos Phelippe

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 ;)

Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar