| Enviada: Qui, 29 Jul 2010 11:40 am Assunto: Efetuar repetição e concatenar as linhas |
|
|
Estou fazendo um relatório no qual faço o select que esta em anexo, retorna uma repetição com a variável garantias_emitente_pf. Agora vai a dúvida e dificuldade. Quero escrever no relatório uma linha seguida da outra. Tem como? como devo fazer?
| Código: | SELECT 'Nota de Empenho Nº '
|| c.n_empenho
|| ', no valor de R$'
|| f_sys_mascara_real (c.vl_total_empenho, 2)
|| '('
|| extenso (c.vl_total_empenho)
|| '),'
|| ' oriundo do Processo Nº '
|| v.id_processo
|| ', '
|| CASE
WHEN NVL (c.n_contrato, 0) = 0
THEN 'datado de '
|| TO_CHAR (c.dt_emissao_empenho, 'dd/mm/yyyy')
|| ', '
WHEN NVL (c.vl_contrato, 0) = 0
THEN 'datado de '
|| TO_CHAR (c.dt_emissao_empenho, 'dd/mm/yyyy')
|| ', '
ELSE ' referente ao Contrato Nº '
|| c.n_contrato
|| ', datado de '
|| TO_CHAR (c.dt_emissao_empenho, 'dd/mm/yyyy')
|| ', no valor total de R$'
|| f_sys_mascara_real (c.vl_contrato, 2)
|| '('
|| extenso (c.vl_contrato)
|| '),'
END AS garantias_emitente_pf
FROM gar_garantias g, gar_vinculadas v, gar_complemento c, cad_orgao o
WHERE v.id_processo = :P_ID_PROCESSO
AND v.id_garantia = g.id_garantia
AND id_tipo = 54
AND c.id_garantia = g.id_garantia
AND o.id_orgao = :P_ID_ORGAO
AND c.id_orgao = o.id_orgao |
|
|
Andre Luiz Rank: Estagiário Júnior

Registrado em: Qui, 29 de Julho de 2010 Mensagens: 1 Cidade - UF: SC
|
| Enviada: Qui, 29 Jul 2010 1:12 pm |
|
|
Opa, blza?
Se eu entendi bem, tu pode jogar essa query para uma função usando sys_refcursor.
Algo assim:
| Código: |
CREATE OR REPLACE FUNCTION funcao_teste(cur SYS_REFCURSOR) RETURN VARCHAR2 IS
row_value LONG;
RESULT LONG;
BEGIN
LOOP
FETCH cur
INTO row_value;
EXIT WHEN cur%NOTFOUND;
IF (RESULT IS NULL)
THEN
RESULT := row_value;
ELSE
RESULT := RESULT || ' ' || row_value;
END IF;
END LOOP;
CLOSE cur;
RETURN(RESULT);
END funcao_teste;
SQL> SELECT funcao_teste(CURSOR (SELECT 'A' a
2 FROM dual
3 UNION
4 SELECT 'B'
5 FROM dual
6 UNION
7 SELECT 'C'
8 FROM dual
9 UNION
10 SELECT 'D'
11 FROM dual)) retorno
12 FROM dual
RETORNO
--------------------------------------------------------------------------------
A B C D
|
_________________ Diego Mello
Igrejinha - RS
www.twitter.com/diegolmello
|
|
Diego_Mello Rank: DBA Júnior

Registrado em: Sex, 5 de Setembro de 2008 Mensagens: 185 Cidade - UF: Igrejinha - RS
|