Procedure com string no operador IN

Firebird

09/10/2013

Galera estou precisando realizar uma consulta utilizando um string com o operador IN do firebird, mas da o seguinte erro:overflow occurred during data type conversion conversion error from string firebird, sei que é devido as aspas duplas, mas não consigo resolver.

Meu parâmetro de entrada vai receber as seguintes strings: '827','828','829','0'

CREATE PROCEDURE sp_teste(
    ivalor varchar(100))
returns (
    prod_id integer,
    qtde numeric(5,2))
as
BEGIN
  FOR
    select distinct
        cargas_itens.prod_id,
        sum(cargas_itens.ci_qtde)
    from cargas_itens
       inner join produtos on (cargas_itens.prod_id = produtos.prod_id)
    where
      cargas_itens.car_id  in (:ivalor)
    group by cargas_itens.prod_id
    INTO :PROD_ID,
         :QTDE
  DO
  BEGIN
    SUSPEND;
  END
END
Sidney Abreu

Sidney Abreu

Curtidas 0

Respostas

Thiago Irrazabal

Thiago Irrazabal

09/10/2013

Bom dia, não sei se ainda está com a dúvida, mas se tu der um replace no teu parâmetro de entrada, antes de usar ele no select tirando as aspas acho que funcionária.


Att,
Thiago Irrazabal de Oliveira.
GOSTEI 0
Deivison Melo

Deivison Melo

09/10/2013

Utilize o
statement sql do Firebird

Exemplo:

[url]http://gustavohenriquephn.wordpress.com/2008/03/26/utilizando-o-execute-statement-em-uma-procedure-selecionavel-no-firebird/[/url]
GOSTEI 0
Deivison Melo

Deivison Melo

09/10/2013

Como está o andamento desse post ?
GOSTEI 0
POSTAR