GARANTIR DESCONTO

Fórum Ajuda com consulta #50274

04/04/2005

0

Por que está gerando este erro, nunca compila o procedimento.


create procedure Periodo
(
DataInicial date,
DataFinal date
)
as
begin
select * from Ponto where Data between DataInicial and DataFinal
end

=====================erro========================Dynamic SQL Error
SQL error code = -104
Token unknown - line 9, char -1
end
Statement: create procedure Periodo
(
DataInicial date,
DataFinal date
)
as
begin
select * from Ponto where Data between DataInicial and DataFinal
end


Ullrich

Ullrich

Responder

Posts

04/04/2005

Afarias

todos os comandos dentro de stored procs e triggers devem terminar com um ; (ponto-e-vírgula)

como vc não colocou no final do comando ´select * from Ponto where Data between DataInicial and DataFinal´ então o IB pensa q o comando continua no end (gerando o erro)

outra coisa é q todo select dentro de um SP ou trigger deve ter um INTO para receber os valores retornados pelo select, e caso o select retorne mais q uma linha, este deve ser precedido por um FOR

quando usar o for, sempre depois da lista de variáveis definidas no INTO vc deve usar um DO seguido do código a ser executado em cada passagem pelo ´loop´. um SUSPEND é usando em procedimentos ´selecionáveis´ para informar q o registro deve ser enviado como retorno.

deverendo ficar por exemplo:

set term ^;
create procedure Periodo (DataInicial date, DataFinal date) 
returns (campo1 varchar(10), campo2 integer)
as begin 
  for select campo1, campo2 from Ponto
  where Data between :DataInicial and :DataFinal
  into :campo1, :campo2 do
    suspend;
end^


T+


Responder

Gostei + 0

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

Aceitar