e-Renata 0 Denunciar post Postado Agosto 19, 2005 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. Compartilhar este post Link para o post Compartilhar em outros sites
alphamek 2 Denunciar post Postado Agosto 19, 2005 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/default/clap.gif Compartilhar este post Link para o post Compartilhar em outros sites
e-Renata 0 Denunciar post Postado Agosto 22, 2005 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/default/clap.gif <{POST_SNAPBACK}> Compartilhar este post Link para o post Compartilhar em outros sites
Motta 645 Denunciar post Postado Agosto 22, 2005 Eu não entendi bem o que você quer , o retorno de uma função ? Compartilhar este post Link para o post Compartilhar em outros sites
e-Renata 0 Denunciar post Postado Agosto 23, 2005 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: - O "código BRA" ao qual me refiro é formado pelos 3 campos: IVP, IVNO e IVS (nesta ordem) formatado para sair da seguinte maneira: 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 ? <{POST_SNAPBACK}> Compartilhar este post Link para o post Compartilhar em outros sites
Motta 645 Denunciar post Postado Agosto 23, 2005 o que retorna sibag_sys.hLeDetalhes ? pq você não faz referencia a sibag_sys.hLeDetalhes no seu cursor ? Compartilhar este post Link para o post Compartilhar em outros sites
e-Renata 0 Denunciar post Postado Agosto 23, 2005 É 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. Compartilhar este post Link para o post Compartilhar em outros sites
Motta 645 Denunciar post Postado Agosto 23, 2005 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. Compartilhar este post Link para o post Compartilhar em outros sites
e-Renata 0 Denunciar post Postado Agosto 30, 2005 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!! ; ) Compartilhar este post Link para o post Compartilhar em outros sites