[firebase-br] Re.: Utilizar variável Varchar em IN

Carlos H. Cantu listas em warmboot.com.br
Sáb Jan 18 10:53:43 -03 2020


Não é permitido usar execute block dentro de uma SP.

Você deve estar confundindo execute block com execute statement.

[]s
Carlos H. Cantu
eBook Guia de Migração para o FB 3 - www.firebase.com.br/guiafb3.php
www.FireBase.com.br - www.firebirdnews.org - blog.firebase.com.br

MR> Desculpe mas vem a talho de foice. É possível usar o "Execute
MR> Block" numa Store Procedure. É que aqui estou  tentar exemplos da
MR> documentação on line e não consigo compilá-la no entanto se bem
MR> entendi é um comando PLSQL. Alguém me ajuda, preciso usá-lo e não sei como fazê-lo. Obrigado.

MR> Enviado do meu telemóvel Huawei.

MR> -------- Mensagem original --------
MR> Assunto: Re: [firebase-br]  Utilizar variável Varchar em IN
MR> De: "Carlos H. Cantu" 
MR> Para: FireBase 
MR> CC: 



MR> Da forma que vc está fazendo não é possível.

MR> Mas vc pode usar o "for execute statement" montando o comando em
MR> runtime. Dependendo você pode tb tentar substituir o "in" por
MR> containing (mas não vai usar índice).

MR> []s
MR> Carlos H. Cantu
MR> eBook Guia de Migração para o FB 3 - www.firebase.com.br/guiafb3.php
MR> www.FireBase.com.br - www.firebirdnews.org - blog.firebase.com.br

CA>> Olá! Seria possível utilizar uma variável do tipo varchar com "IN" 
CA>> dentro de uma cláusula "where"?

CA>> Por ex:

CA>> create or alter procedure SP_CONTAS_MOV (
CA>> itiposmov varchar (50)
CA>> ) returns (
CA>> oid integer,
CA>> odescricao varchar(50))
CA>> as
CA>> begin
CA>>    for
CA>>      select M.ID, M.DESCRICAO
CA>>      from CONTAS_MOV M
CA>>      where ( (:itiposmov = '') or (M.TIPOMOV in (:itiposmov)) ) -- Aqui
CA>> como ficaria?
CA>>      into :oid, odescricao
CA>>      do suspend;
CA>> end

CA>> o campo "M.TIPOMOV" é do tipo Integer. Desta forma está dando erro de 
CA>> conversão de string.


MR> ______________________________________________
MR> FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
MR> Para saber como gerenciar/excluir seu cadastro na lista, use:
MR> http://www.firebase.com.br/fb/artigo.php?id=1107
MR> Para consultar mensagens antigas:
MR> http://www.firebase.com.br/pesquisa_lista.html

MR>  





Mais detalhes sobre a lista de discussão lista