[firebase-br] Como concatenar o valor de varios registros em um só?
Claudir Pereira dos Santos
claupers_dbrays em yahoo.com.br
Qui Nov 9 15:18:31 -03 2006
Jeferson, dei mais uma lida e consegui. Com o ibexpert free ficou assim, não
tive que mudar nada.
create procedure SP_TbLauObstecConcat (Sp_NumAte integer)
returns (LISTA varchar(1024))
as
declare variable AUX varchar(20);
begin
Lista = '';
for select L.Lau_ObsTec from Tb_lau L where L.Lau_NumAte = :Sp_NumAte
into :Aux do
Lista = :Lista || '-' || :Aux;
suspend;
end
Para chamar a procedure faço assim certo:
select * from SP_TbLauObstecConcat(115) considerando que 115 é o numero de
atendimento do paciente, isso deu certo, obtive o resultado que queria.
Mas como é que eu vou atribuir o valor do resultado ao campo
Lau_ObsTecConcat , Pensei que assim desse mas deu erro de sintaxe:
update tb_lau set Lau_ObsTecConcat = (select * from
SP_TbLauObstecConcat(115) where Lau_numate =115))
Cordialmente;
Claudir P. Santos
T.I.
----------------------------------------------------------------------------
--
Desculpe-me Claudir. Não sabia que você não possuía experiência com SPs.
Para excutar comandos DDL, normalmente é necessário alterar o caracter
terminador de sentenças, pois internamente eles utilizam o terminador
padrão que é o ; (ponto e vírgula).
Portanto, poderia ficar assim:
set term ^; /*definindo circunflexo como o terminador*/
create procedure SP_LISTA_OBS (CODIGO integer)
returns (LISTA varchar(1024))
as
declare variable AUX varchar(20);
begin
Lista = '';
for select L.Lau_ObsTec from Tb_lau L where L.Pac_Cod = :CODIGO
into :Aux do
Lista = :Lista || '-' || :Aux;
suspend;
end
^ /* indica fim da sentença*/
set term ;^ /*definindo ; como o terminador*/
Abraço!
Jeferson Oliveira
______________________________________________
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