[firebase-br] RES: Problema com o select
Jeudí Prando
jeudiprando em gmail.com
Sex Ago 11 11:34:24 -03 2006
o acerto postei errado creio eu
tome o meu como exemplo
--select * from retorna_endereco(1)
ALTER PROCEDURE RETORNA_ENDERECO
(
pi_codigo integer -- codigo do produto, parametro de entrada
)
returns
(
po_codigo integer, -- codigo do endereco, parametro de saida
po_codigoNome varchar(60), -- codigo que na verdade é um nome
codificado, parametro de saida
po_nome varchar(60) -- nome do endereco, parametro de saida
)
as
DECLARE VARIABLE vrNome varchar(60); -- variavel para uso interno
begin
for
select
SC_PLNCT.CODIGO_CONTABIL
from
sc_plnct
where
SC_PLNCT.CODIGO_FILIA = 1 and -- campo da chave primaria
SC_PLNCT.CODIGO_CONTABIL = :pi_codigo
into :vrNome
do
begin
select
SC_PLNCT.CODIGO_PLNCT,
SC_PLNCT.CODIGO_CONTABIL,
SC_PLNCT.NOME_PLNCT
from
SC_PLNCT
where
SC_PLNCT.CODIGO_FILIA = 1 and -- campo da chave primaria
SC_PLNCT.CODIGO_CONTABIL like :vrNome||'%'
into :po_codigo, :po_codigoNome, :po_nome;
suspend;
end
end
Pablo Cunha escreveu:
> Isso mesmo, neste exemplo que eu lhe envie na parte de cima eu escrevi
> errado, é C1 mesmo, ai estou mandando novamente o correto.
>
> NM_DESCRICAO_END
> ==================
> A
> B1
> C1.02.020
> D.01.009
>
> Então baseado neste "Select 2" eu tenho que buscar todos endereços que
> iniciam com o resultado. Seria mais ou menos assim:
>
> ID_END NM_DESCRICAO_END
> ====== ==================
> 1 A.01.009.01.07
> 2 A.02.054.03.08
> 3 A.06.098.05.07
> 87 B1.09.058.98.69
> 88 B1.06.014.65.75
> 310 C1.02.020.01.65
> 315 C1.02.020.06.98
> 654 D.01.009.07.09
> 655 D.01.009.45.10
> 656 D.01.009.58.15
>
>
>
> ----- Original Message ----- From: "Jeudí Prando" <jeudiprando em gmail.com>
> To: "FireBase" <lista em firebase.com.br>
> Sent: Friday, August 11, 2006 11:00 AM
> Subject: Re: [firebase-br] RES: Problema com o select
>
>
> tenho 1% de duvida
> C.02.020
> deveria ser
> C1.02.020
> ?
> talvez procedure utilizando o recurso de cursor possa te ajudar estou
> olhando...
>
> Roger escreveu:
>> Novamente ...
>> Aliás relembrando melhor, optei pela Procedure, pois
>> o processamento ficou muito mais rápido, e a outra solução
>> que eu tinha chegado era usar um "IN" (não sei se no seu caso
>> poderia substituir o like por isso).
>>
>> select blá blá where e.nm_descricao_end IN (select blá bl ...)
>>
>>
>>
>>
>> Olá Pablo, bom dia !!
>>
>> Por coincidência, ontem mesmo deparei com esta mesma mensagem.
>> Não consegui resolver de outra maneira, senão através de uma Procedure.
>> Se por acaso houver outra solução, ou uma explicação para isto...
>>
>> Espero ter lhe dado um caminho ...
>>
>>
>> []´s Roger
>>
>>
>> -----Mensagem original-----
>> De: lista-bounces em firebase.com.br
>> [mailto:lista-bounces em firebase.com.br]Em nome de Pablo Cunha
>> Enviada em: sexta-feira, 11 de agosto de 2006 09:54
>> Para: jeudiprando em gmail.com; FireBase
>> Assunto: Re: [firebase-br] Problema com o select
>>
>>
>> O "SQL 2" pode retornar sim mais de um registro, ou seja, é esperado.
>>
>>
>>
>> ----- Original Message -----
>> From: "Jeudí Prando" <jeudiprando em gmail.com>
>> To: "FireBase" <lista em firebase.com.br>
>> Sent: Friday, August 11, 2006 9:52 AM
>> Subject: Re: [firebase-br] Problema com o select
>>
>>
>> o fato do SQL2 retornar mais de uma registro é inesperado(é o que vc nao
>> quer)? ele deveria retornar somente um? ou o fato de o SQL2 retornar
>> mais de um registro é esperado
>> inté+
>> Pablo Cunha escreveu:
>>
>>> Bom Dia a todos, é o seguinte amigo, eu tenho um select que me
>>> retorna o
>>> nome de um endereço (chamarei este select de "select 2") e um outro que
>>> utiliza o Like que me retorna todos os endereços que começam com o
>>> que o
>>> "select 2" retornou. Até ai tudo bem, só que se o "select 2" retorna
>>> mais
>>> de 1 registro ele dá o erro de "Multiple Rows in Singleton Select".
>>> Só que
>>> eu tenho que ter todos os endereços de uma vez só. Como que eu
>>> resolveria
>>> isto?
>>>
>>> select e.id_end
>>> from endereco e
>>> where e.nm_descricao_end like (
>>> (
>>> select e2.nm_descricao_end
>>> from produto_endereco pe,
>>> endereco e2
>>> where pe.id_produto = 295
>>> and pe.id_end = e2.id_end
>>> )
>>> ||'%')
>>> ______________________________________________
>>> FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
>>> Para editar sua configuração na lista, use o endereço
>>> http://mail.firebase.com.br/mailman/listinfo/lista_firebase.com.br
>>> Para consultar mensagens antigas: http://firebase.com.br/pesquisa
>>>
>>>
>>>
>>
>> ______________________________________________
>> FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
>> Para editar sua configuração na lista, use o endereço
>> http://mail.firebase.com.br/mailman/listinfo/lista_firebase.com.br
>> Para consultar mensagens antigas: http://firebase.com.br/pesquisa
>>
>>
>> --
>> No virus found in this incoming message.
>> Checked by AVG Free Edition.
>> Version: 7.1.405 / Virus Database: 268.10.9/416 - Release Date:
>> 10/8/2006
>>
>>
>>
>>
>>
>> _______________________________________________________
>> O Yahoo! está de cara nova. Venha conferir!
>> http://br.yahoo.com
>>
>>
>> ______________________________________________
>> FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
>> Para editar sua configuração na lista, use o endereço
>> http://mail.firebase.com.br/mailman/listinfo/lista_firebase.com.br
>> Para consultar mensagens antigas: http://firebase.com.br/pesquisa
>>
>> --------------------------------------------------
>> Esta mensagem foi verificada por Ultralink-Scanner
>> e nenhum virus foi encontrado.
>>
>> Web Server Ultralink: http://www.ultralink.com.br
>> --------------------------------------------------
>>
>>
>>
>>
>>
>> --------------------------------------------------
>> Esta mensagem foi verificada por Ultralink-Scanner
>> e nenhum virus foi encontrado.
>>
>> Web Server Ultralink: http://www.ultralink.com.br
>> --------------------------------------------------
>>
>>
>> ______________________________________________
>> FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
>> Para editar sua configuração na lista, use o endereço
>> http://mail.firebase.com.br/mailman/listinfo/lista_firebase.com.br
>> Para consultar mensagens antigas: http://firebase.com.br/pesquisa
>>
>>
>
> ______________________________________________
> FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
> Para editar sua configuração na lista, use o endereço
> http://mail.firebase.com.br/mailman/listinfo/lista_firebase.com.br
> Para consultar mensagens antigas: http://firebase.com.br/pesquisa
>
>
Mais detalhes sobre a lista de discussão lista