Usuário com melhor resposta
nomear resultado de um select em uma stored procedure

Pergunta
-
Olá pessoal.
Tenha um dúvida que é a seguinte, como eu faço para dar um 'nome' para um determinado resultado de um select que eu faço na minha stored procedure?
Por exemplo, eu quero retornar multiplos 'selects' na minha stored procedure, e gostaria de nomear as 'tables' que são retornadas:
select 1 (atrasado)
select 2 (falta 1 dia)
select 3 (falta 5 dias)
Desde já agradeço a atenção.
Att.,
Eduardo.
Respostas
-
Eduardo,
Não, veja bem, se voce vai montar um dataset em sua aplicação, e todos os selects que voce quer dentro deste mesmo dataset, crie uma view com esses selects e utilize o UNION [ALL], mas lembre-se que para utiliza-lo o numero de colunas e o datatype deve ser o mesmo.
Se voce quer jogar em N dataset, crie varias views, cada uma com o select esperado, e chame-as conforme sua necessidade.
Oracle OCA11g, MCC 2011! Dicas e novidades: www.fabrizziocaputo.wordpress.com- Sugerido como Resposta Eder Costa segunda-feira, 30 de maio de 2011 18:58
- Marcado como Resposta Eder Costa quarta-feira, 1 de junho de 2011 17:47
-
Eduardo, o funcionamento é diferente.
Se os Select's que você quer montar não tem nada a ver um com outro, você terá que jogar o resultado desses Selects em DataSet's diferentes.
Se o seu DataSet tiver propriedade destinada para isso, ou se puder usar um outro componente como "ponte", você pode utilizar o Select diretamente nele (no DataSet). Ou se preferir, pode criar uma view para cada Select, conforme exemplo:
Create View vw_Teste as
Select
E.EmployeeID,
E.BirthDate,
EA.AddressID
From
HumanResources.Employee E Join HumanResources.EmployeeAddress EA on (EA.EmployeeID = E.EmployeeID)
Where
(MONTH(E.BirthDate) = 5)
Select * From vw_Teste
Esta view que criei selecionará todos os empregados que fazem aniversário em maio, com seus respectivos endereços e data de nascimento. É assim que funciona. Então, o seu DataSet estaria ligado ao "Select * From vw_Teste".
Agora, se os seus Select's tiverem ligação um com o outro, talvez seja possível construirmos até mesmo um Select apenas, ao invés de termos vários.
Se você ainda não tiver entendido, não tem problema, mas post mais informações para que possamos ser mais claros. Informe literalmente, por exemplo, quais são os Selects reais que você pensa em fazer. Informe também a estrutura das tabelas envolvidas nestes Selects.
Roberson Ferreira
Se esta sugestão for útil, por favor, classifique-a como útil.
Se ela lhe ajudar a resolver o problema, por favor, marque-a como Resposta.- Sugerido como Resposta Eder Costa segunda-feira, 30 de maio de 2011 18:58
- Marcado como Resposta Eder Costa quarta-feira, 1 de junho de 2011 17:47
Todas as Respostas
-
-
-
Eduardo, mas qual a finalidade da sua necessidade? Dependendo do que for, pode ser uma CTE, tabelas temporárias, ou simplesmente não ser possivel.
Tks. Fausto Fiorese Branco MCTS, MCITP/DBA 2005 | MCITP/DBA 2008 São Paulo - Brasil * http://www.linkedin.com/in/faustobranco- Sugerido como Resposta Eder Costa segunda-feira, 30 de maio de 2011 18:59
-
Eduardo,
Eu concordo com o Fausto, veja bem, quando voce executar a procedure, ela simplismente trata todos os resultados de todos os selects contidos na mesma, não é possivel selecionar qual trazer ou qual não trazer.
Até onde eu entendi, voce teria uma procedure com todos os selects e ia selecionado certos selects para certos casos, é isso mesmo? bom, se sim, o uso de view é mais indicado e voce tera mais performance pois se trata apenas de um select e não de varios, alem de poder contar com indexed views e schemabinding que são recursos interessantes para uma view.
Oracle OCA11g, MCC 2011! Dicas e novidades: www.fabrizziocaputo.wordpress.com -
-
-
Eduardo,
Não, veja bem, se voce vai montar um dataset em sua aplicação, e todos os selects que voce quer dentro deste mesmo dataset, crie uma view com esses selects e utilize o UNION [ALL], mas lembre-se que para utiliza-lo o numero de colunas e o datatype deve ser o mesmo.
Se voce quer jogar em N dataset, crie varias views, cada uma com o select esperado, e chame-as conforme sua necessidade.
Oracle OCA11g, MCC 2011! Dicas e novidades: www.fabrizziocaputo.wordpress.com- Sugerido como Resposta Eder Costa segunda-feira, 30 de maio de 2011 18:58
- Marcado como Resposta Eder Costa quarta-feira, 1 de junho de 2011 17:47
-
Eduardo, o funcionamento é diferente.
Se os Select's que você quer montar não tem nada a ver um com outro, você terá que jogar o resultado desses Selects em DataSet's diferentes.
Se o seu DataSet tiver propriedade destinada para isso, ou se puder usar um outro componente como "ponte", você pode utilizar o Select diretamente nele (no DataSet). Ou se preferir, pode criar uma view para cada Select, conforme exemplo:
Create View vw_Teste as
Select
E.EmployeeID,
E.BirthDate,
EA.AddressID
From
HumanResources.Employee E Join HumanResources.EmployeeAddress EA on (EA.EmployeeID = E.EmployeeID)
Where
(MONTH(E.BirthDate) = 5)
Select * From vw_Teste
Esta view que criei selecionará todos os empregados que fazem aniversário em maio, com seus respectivos endereços e data de nascimento. É assim que funciona. Então, o seu DataSet estaria ligado ao "Select * From vw_Teste".
Agora, se os seus Select's tiverem ligação um com o outro, talvez seja possível construirmos até mesmo um Select apenas, ao invés de termos vários.
Se você ainda não tiver entendido, não tem problema, mas post mais informações para que possamos ser mais claros. Informe literalmente, por exemplo, quais são os Selects reais que você pensa em fazer. Informe também a estrutura das tabelas envolvidas nestes Selects.
Roberson Ferreira
Se esta sugestão for útil, por favor, classifique-a como útil.
Se ela lhe ajudar a resolver o problema, por favor, marque-a como Resposta.- Sugerido como Resposta Eder Costa segunda-feira, 30 de maio de 2011 18:58
- Marcado como Resposta Eder Costa quarta-feira, 1 de junho de 2011 17:47