Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
http://forum.imasters.com.br/public/style_emoticons/default/hug.gif
Aê!
Como eu faço pra exibir numa tabela, o resultado de uma procedure PL/SQL onde vem: codigo BRA e denominação de uma espécie de uma planta qq (cuja espécie é dada como parâmetro)?
O resultado tem que vir linha por linha, sem repetição de códigos e com as tais descrições concatenadas com '; ' quando o BRA tiver mais de uma denominação.
Obrigada pela atenção de quem responder.
Está errado... não é nada disso. :huh:
Deixa pra lá.
>
Olá,
Faz o seguinte... truque de mágico:
select coluna1 || ';' || coluna2 || ';' || coluna 3 from tabela. Acho que isso irá te ajudar.
Abraços,
[http://forum.imasters.com.br/public/style_emoticons/](http://forum.imasters.com.br/public/style_emoticons/)default/clap.gif
[](/topic/143341-concatenado-palavras/?do=findComment&comment=412742)
Eu não entendi bem o que você quer , o retorno de uma função ?
Semana passada, um colega aqui criou uma função para retornar essas descrições de cada código concatenadas, (atendeu a demanda do nosso chefe e teoricamente a esta minha, também) mas ela não funcionou no meu cursor PL/SQL.
Não sei se eu declarei os campos erradamente nela ou se ela não funciona mesmo dentro de cursores ...
a função é:
sibag_sys.hLeDetalhes(String key, String keyValue, String tableChild, String fieldConcat, String fieldSort, String separator)
e meu cursor é:
CURSOR CUR_ACESSO IS
SELECT DISTINCT TAX.TAXON, IV.IVP, IV.IVNO, IV.IVS, AN.SEARCHID
FROM TAX, IV, AN
WHERE (UPPER(TAX.TAXON) LIKE UPPER(PTAXON) || '%')
AND IV.TAXNO = TAX.TAXNO
AND IV.ACID = AN.ACID
ORDER BY IVP, IVNO, IVS, SEARCHID;
onde:
HTP.TABLEDATA ('<FONT COLOR = "BLACK" FACE = "ARIAL" SIZE = "2" >' || REG_AC.IVP || '-' || LTRIM(TO_CHAR(REG_AC.IVNO,'000009')) || '-' || REG_AC.IVS || '</FONT>');
As "denominações" estão no campo: AN.SEARCHID da tabela AN.
O resultado da minha consulta deve ser uma tabela em PL/SQL (com tableopen, tablerowopen, tabledata, tablerowclose, tableclose) onde veremos: para cada linha, os códigos BRA e denominações (concatenadas na mesma linha do respectivo código) de uma dada espécie de planta ou fruta ou legume inserida (escolhida) pelo usuario.
Grata a quem puder me ajudar.
>
Eu não entendi bem o que você quer , o retorno de uma função ?
[](/topic/143341-concatenado-palavras/?do=findComment&comment=413756)
o que retorna sibag_sys.hLeDetalhes ?
pq você não faz referencia a sibag_sys.hLeDetalhes no seu cursor ?
É pra retornar a linha de resultado:---------------------------------------------------------------------------------------|BRA-999999-00 | denominação_1; denominação_2; denominação_3 |---------------------------------------------------------------------------------------e assim por diante, pra cada BRA que aparecer...Não a referencio no cursor porque o compilador Oracle 8.0 não a aceita dentro dele.
Tenho funcoes que me retornam string baseado em select , concat , etc.
Elas podem ser usadas em sql sem nenhum problema, apenas as que retornam tipos criados pelo usuário nao são tratadas por algumas linguagens.
http://forum.imasters.com.br/public/style_emoticons/default/joia.gif
Já resolvi o problema, sem precisar colocar o código de concatenação numa função.
Assim:
1) Declared local variables to get the data I'll use
2) Declared 2 cursors to refer and process the data (one to the code, other to the descriptions it may have)
3) Opened the first cursor outside the first loop (code) and the other outside the second loop (descriptions), I mean: at this time I thought about writing a nested loop to process the descriptions for each code
4) Implemented the nested loop and exhibited the result in a PL/SQL formated table
No need of functions nor much more hours of hard work...
Piece of cake!! ; )
Olá,
Faz o seguinte... truque de mágico: