[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