Bingo... Acho que essa mata a charada ;) Formata a sua saída bonitinha como se fosse a saída de um select ;) POG total, mas acho que pode resolver. Lembra de depois fazer um set serveroutput off;
Gostei Guilherme! Gmail - Guilherme escreveu: > > > eheheh Cara eu sei como é isso...... > cara espero que o codigo abaixo te ajude > > set serveroutput on; > DECLARE > TYPE DatCurTyp IS REF CURSOR; > dat_cv DatCurTyp; > lix_rec LIXO%ROWTYPE; > sql_stmt VARCHAR2(2000); > v_dat date := to_date('01/05/2008','dd/mm/rrrr'); > BEGIN > sql_stmt := 'SELECT 500 valor,sysdate FROM dual WHERE sysdate >= :d'; > OPEN dat_cv FOR sql_stmt > USING v_dat; > LOOP > FETCH dat_cv > INTO lix_rec; > EXIT WHEN dat_cv%NOTFOUND; > DBMS_OUTPUT.PUT_LINE(to_char(v_dat,'mm/rrrr')||chr(10)|| > lix_rec.valor ); > > END LOOP; > CLOSE dat_cv; > END; > / > > 2008/5/13 Luis Eduardo Trovo <[EMAIL PROTECTED] > <mailto:l_trovo%40yahoo.com>>: > > > Gleyson, > > > > Veja, o problema aqui é técnico, não estou levando em > > conta o que a TI poderia fazer por mim. > > > > Meu usuário, neste caso é meu diretor, que é doente e > > não abre a mão do velho e bom SQL PLUS. > > > > Na verdade isso caiu no meu colo, porque o diretor não > > conseguiu resolver, pois ele tem uma boa noção de > > oracle, só que desta vez ele não conseguiu uma > > solução! Caiu no meu colo também, porque passou por > > várias pessoas e também não conseguiram resolver. > > E eu, que sou de BI, e não tenho nada a ver com o pato > > .. rs .. estou batendo a cabeça para resolver! > > > > Veja, o problema, como te disse, é técnico .. nada de > > conceitual, de estrutura interna da empresa ou de > > forma de desenvolvimento. > > > > Rs .. só preciso que o apelido de uma coluna seja > > formatado em "mes/ano" todas as vezes que uma data, no > > formato "dia/mes/ano", for usado para filtrar uma > > view. > > > > Estou já quase jogando a toalha viu .. rs. > > > > Abraços > > Luís > > > > > > --- Gleyson Melo <[EMAIL PROTECTED] > <mailto:gleysonmelo%40gmail.com> <gleysonmelo%40gmail.com>> wrote: > > > > > Fala Eduardo, > > > > > > Se é pra rodar no SQLPlus, então não é para o > > > usuário final. Porque a > > > preocupação com um nome dinâmico do campo? > > > > > > Se é pra uma equipe de operação, que só fica > > > monitorando, porque criar uma > > > view se você pode criar um script com uma entrada > > > muito mais simples, como o > > > André mencionou? Assim, o operador não precisa saber > > > SQL. > > > > > > Porque tem que ser no sqlplus, se você poderia fazer > > > em Delphi, Java, .NET, > > > PHP, ... e gerar uma saída muito mais bonita e > > > moderna? > > > > > > Na verdade, talvez não exista uma solução para esse > > > problema porque esse > > > problema não é relevante para o resto do universo de > > > TI. O que você quer, no > > > fim das contas, provavelmente pode ser resolvido de > > > outra maneira. Você não > > > quer explicar o contexto de forma mais detalhada? > > > > > > 2008/5/13 Luis Eduardo Trovo <[EMAIL PROTECTED] > <mailto:l_trovo%40yahoo.com> <l_trovo%40yahoo.com>>: > > > > > > > Marcelo, > > > > > > > > Primeiramente, obrigado pela atenção! > > > > > > > > Criei aqui um processo para tentar exemplificar o > > > > exemplo. > > > > > > > > ====> Crio uma view com a data e um valor > > > > > > > > SQL> > > > > SQL> CREATE VIEW LIXO AS > > > > 2 SELECT F.F_DT_TRANS DT_TRANS, F.F_VL_PARCELA > > > > VL_PARCELA > > > > 3 FROM F_BUSSOLA F > > > > 4 WHERE F.F_CD_REDE = 1 > > > > 5 AND F.F_PRODUTO = 224; > > > > > > > > View created > > > > > > > > SQL> > > > > SQL> > > > > > > > > > > > > ====> Acesso a view Lixo, passando uma data: > > > > > > > > > > > > SQL> > > > > SQL> SELECT SUM(L.VL_PARCELA) > > > > 2 FROM LIXO L > > > > 3 WHERE L.DT_TRANS = '01/12/2007'; > > > > > > > > SUM(L.VL_PARCELA) > > > > ----------------- > > > > 50621,63 > > > > > > > > SQL> > > > > SQL> > > > > > > > > O resultado do select, tem como apelido para a > > > coluna > > > > o "SUM(L.VL_PARCELA)", porém, eu preciso que este > > > > apelido seja uma formatação da data que eu filtrei > > > o > > > > resultado (01/12/2007), ou seja, preciso que o > > > > resultado seja uma formatação de '01/12/2007' para > > > > 12/2007. > > > > > > > > Em outras palavras, o resultado que eu preciso é: > > > > > > > > > > > > 12/2007 > > > > ----------------- > > > > 50621,63 > > > > > > > > > > > > O exemplo que você montou funciona, porém eu não > > > > tenho, na tabela em questão, um campo para dia, > > > mês e > > > > ano separadamente. Ou seja, preciso passar a data > > > > completa no where (ou parâmetro - como me > > > expressei > > > > antes). > > > > > > > > Obrigado. > > > > Luís. > > > > > > > > > > > > --- Andre Santos > > > > > <[EMAIL PROTECTED] <mailto:andre.psantos.ti%40gmail.com> > <andre.psantos.ti%40gmail.com> > > <andre.psantos.ti%40gmail.com>> > > > > wrote: > > > > > > > > > Luis > > > > > > > > > > Mas vocês vão tentar fazer uma "view > > > parametrizada"? > > > > > (na cláusula WHERE?) > > > > > Até onde sei, isso não é possível... > > > > > > > > > > Bom... creio que isso foi um desafio de "POG" ( > > > > > http://desciclo.pedia.ws/wiki/POG > <http://desciclo.pedia.ws/wiki/POG>) > > > > > ;^) > > > > > > > > > > Então segue uma sugestão que pode ser colocada > > > em um > > > > > "script" (já que > > > > > pretendem executar através do SQL Plus). > > > > > > > > > > [ ]'s > > > > > > > > > > André > > > > > > > > > > SQL> -- Preparação e verificação > > > > > ---------------------- > > > > > SQL> > > > > > > > > > > SQL> DESC teste > > > > > Nome Nulo? > > > > > Tipo > > > > > ----------------------------------------- > > > -------- > > > > > ---------------------------- > > > > > DT > > > > > DATE > > > > > VALOR > > > > > NUMBER(9,2) > > > > > > > > > > SQL> SELECT * FROM teste; > > > > > > > > > > DT VALOR > > > > > ------------------- ---------- > > > > > 12/05/2008 00:00:00 1000 > > > > > 12/05/2008 00:00:00 500 > > > > > 13/05/2008 00:00:00 2000 > > > > > 13/05/2008 00:00:00 300 > > > > > > > > > > SQL> CREATE OR REPLACE VIEW vw_teste > > > > > 2 AS SELECT dt, SUM(valor) soma_dia > > > > > 3 FROM teste > > > > > 4 GROUP BY dt; > > > > > > > > > > View criada. > > > > > > > > > > SQL> SELECT * FROM vw_teste; > > > > > > > > > > DT SOMA_DIA > > > > > ------------------- ---------- > > > > > 12/05/2008 00:00:00 1500 > > > > > 13/05/2008 00:00:00 2300 > > > > > > > > > > SQL> -- Execução > > > > > -------------------------------------- > > > > > SQL> > > > > > > > > > > SQL> ACCEPT p_dia CHAR PROMPT 'Digite o "dia" da > > > > > data (de 01 a 31): ' > > > > > Digite o "dia" da data (de 01 a 31): 12 > > > > > SQL> > > > > > SQL> ACCEPT p_mes CHAR PROMPT 'Digite o "mês" da > > > > > data (de 01 a 12): ' > > > > > Digite o "mês" da data (de 01 a 12): 05 > > > > > SQL> > > > > > SQL> ACCEPT p_ano CHAR PROMPT 'Digite o "ano" > > > (com 4 > > > > > dígitos): ' > > > > > Digite o "ano" (com 4 dígitos): 2008 > > > > > SQL> > > > > > SQL> SELECT soma_dia "&p_mes/&p_ano" > > > > > 2 FROM vw_teste > > > > > 3 WHERE dt = > > > > > TO_DATE('&p_dia/&p_mes/&p_ano','dd/mm/yyyy'); > > > > > antigo 1: SELECT soma_dia "&p_mes/&p_ano" > > > > > novo 1: SELECT soma_dia "05/2008" > > > > > antigo 3: WHERE dt = > > > > > TO_DATE('&p_dia/&p_mes/&p_ano','dd/mm/yyyy') > > > > > novo 3: WHERE dt = > > > > > TO_DATE('12/05/2008','dd/mm/yyyy') > > > > > > > > > > 05/2008 > > > > > ---------- > > > > > 1500 > > > > > > > > > > SQL> > > > > > SQL> -- Finalização > > > > > ----------------------------------- > > > > > SQL> UNDEFINE p_dia > > > > > SQL> UNDEFINE p_mes > > > > > SQL> UNDEFINE p_ano > > > > > > > > > > ______________________________________________ > > > > > Em 13/05/08, Luis Eduardo Trovo > > > <[EMAIL PROTECTED] <mailto:l_trovo%40yahoo.com> > <l_trovo%40yahoo.com> <l_trovo%40yahoo.com> > > > > > > > > > > escreveu: > > > > > === message truncated === > > > > > > > > [As partes desta mensagem que não continham texto foram removidas] > > -- Sds, Leonardo Rezende Analista Desenvolvedor [EMAIL PROTECTED]