Motta 645 Denunciar post Postado Junho 25, 2007 Alguém sabe como num Sql dinamico posso saber em runtime o nome das colunas envolvidas ? Exemplo (tirado do help) : DECLARE TYPE EmpCurTyp IS REF CURSOR; emp_cv EmpCurTyp; emp_rec emp%ROWTYPE; sql_stmt VARCHAR2(200); my_job VARCHAR2(15) := 'CLERK'; BEGIN sql_stmt := 'SELECT * FROM emp WHERE job = :j'; OPEN emp_cv FOR sql_stmt USING my_job; LOOP FETCH emp_cv INTO emp_rec; EXIT WHEN emp_cv%NOTFOUND; -- process record -- -- aqui no fetch tenho como saber o nome das colunas ?????? <<<<<<<<< END LOOP; CLOSE emp_cv; END; Compartilhar este post Link para o post Compartilhar em outros sites
oscarnogueira 1 Denunciar post Postado Junho 25, 2007 Boas,Motta, não tem como fazer um SELECT na DBA_TAB_COLUMNS pra ter essa informação?Até! Compartilhar este post Link para o post Compartilhar em outros sites
Motta 645 Denunciar post Postado Junho 25, 2007 Sim , mas se fosse uma query com join , a ideia é saber quais colunas , recebendo a query como parametro, criar algo generico. Pensei nisto para criar a tal function que gera um arquivo do tipo csv falado por aí. falou. Compartilhar este post Link para o post Compartilhar em outros sites
oscarnogueira 1 Denunciar post Postado Junho 26, 2007 Hum...Eu já tentei fazer alguma coisa nesse sentido. O que eu consegui fazer foi montar o SQL todo numa variável varchar2 e executá-lo com o EXECUTE IMMEDIATE. Foi o mais próximo que consegui. Compartilhar este post Link para o post Compartilhar em outros sites
Motta 645 Denunciar post Postado Junho 26, 2007 Sim , mas para montar uma barra de títulos seria preciso o nome das colunas. Deve ser possível pois os programas que executam sql o fazem, talvez eles montem com base no próprio sql. Compartilhar este post Link para o post Compartilhar em outros sites
oscarnogueira 1 Denunciar post Postado Junho 26, 2007 Boas,aí é diferente. Depois que o resultset está montado dentro da aplicação, é fácil saber qual o nome das colunas. Já fiz isso em Java. O que essas IDEs que exportam para CSV fazem é exatamente isso. Você pode tirar a prova dos 9 fazendo um trace da sessão da IDE (PL/SQL Developer, por exemplo) e verificar se é feita alguma consulta no banco de dados quando você manda gerar o CSV.Até! Compartilhar este post Link para o post Compartilhar em outros sites
alphamek 2 Denunciar post Postado Junho 27, 2007 Motta,Veja se essa view pode ajudar sua vida, v$open_cursor. SELECT * FROM V$OPEN_CURSOR; Abraços,Uma outra curiosidade Motta, pq precisa saber as colunas? Algum processo de segurança!!! Abraços, Compartilhar este post Link para o post Compartilhar em outros sites
Motta 645 Denunciar post Postado Junho 27, 2007 Alguém pediu uma ajuda para montar uma procedure que gerasse csv recebendo uma query como parametro. Para isto seria preciso obter as colunas para gerar os títulos. Vi a view , na realidade queria saber se haveria alguma propriedade como por exemplo se tem no delphi query1.Fields[1].FieldName Na realidade no momento não preciso fazer nada , foi curiosidade acadêmica. Falou !! Compartilhar este post Link para o post Compartilhar em outros sites
alphamek 2 Denunciar post Postado Junho 27, 2007 http://forum.imasters.com.br/public/style_emoticons/default/graduated.gif Compartilhar este post Link para o post Compartilhar em outros sites