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
Efetuar repetição e concatenar as linhas
-
- Rank: Estagiário Júnior
- Mensagens: 1
- Registrado em: Qui, 29 Jul 2010 11:30 am
- Localização: SC
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?
-
- Rank: DBA Júnior
- Mensagens: 229
- Registrado em: Sex, 05 Set 2008 2:59 pm
- Localização: Igrejinha - RS
Opa, blza?
Se eu entendi bem, tu pode jogar essa query para uma função usando sys_refcursor.
Algo assim:
Se eu entendi bem, tu pode jogar essa query para uma função usando sys_refcursor.
Algo assim:
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
-
- Informação
-
Quem está online
Usuários navegando neste fórum: Nenhum usuário registrado e 8 visitantes