Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Motta

Sql dinamico - nome da coluna

Recommended Posts

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

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

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

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

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

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

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

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.