Tem jeito? select * from pessoa where codigo in (:codigo);

Firebird

17/02/2005

Será que da pra passar uma lista de valores para esse tipo de situação?

select *
from pessoa
where codigo in (:codigo);


[color=red:4ec241bddd][b:4ec241bddd]em run-time?[/b:4ec241bddd][/color:4ec241bddd]

Obrigado


Tenil

Tenil

Curtidas 0

Respostas

Afarias

Afarias

17/02/2005

NÃO.


...mas, existem ´soluções´ (workaround)


T+


GOSTEI 0
Rodolpho123

Rodolpho123

17/02/2005

Esses ´códigos´ seriam muitos?


GOSTEI 0
Tenil

Tenil

17/02/2005

Eu dei um jeito via programação (DELPHI).

Mas obrigado pelo esclarecimento.


GOSTEI 0
Beppe

Beppe

17/02/2005

Um parâmetro não pode ser uma lista vertical, mas pode ser uma horizontal(subselect).

Este artigo na BDN explica o porquê:
http://bdn.borland.com/article/0,1410,32076,00.html

Mas esta entrada no CodeCentral dá uma boa alternativa para o problema inverso:
http://codecentral.borland.com/codecentral/ccweb.exe/listing?id=15065

Em suma, converta codigo para uma lista delimitada por vírgulas(teria que começar com uma vírgula também), e use LIKE:
SELECT *
FROM Pessoa
WHERE :codigo LIKE ´¬,´ || Codigo || ´,¬´


Mas não tenho certeza se poderia ser aplicado ao seu problema, isto é, se é permitido esta sintaxe. Mas já que resolveu nem perca tempo.


GOSTEI 0
Tenil

Tenil

17/02/2005

Obrigado pelo esclarecimento Beppe!

Roberto


GOSTEI 0
POSTAR