Olá a todos…
Estou precisando realizar a seguinte consulta no Banco de Dados: minha aplicação, em sua tela de login de usuários, deve fornecer a opção dele selecionar em qual banco de dados se conectar, sendo que estes são diferentes no clientes. É possível eu me conectar ao Oracle e buscar os bancos de dados disponíveis?
Alguma sugestão de como efetuar tal busca?
Desde já agradeço a atenção de todos.
Depende do que vc quer.
Eu não sei se vc está falando de serviço do banco de dados ou de usuários do banco de dados.
Se for instância/serviço, acho q não tem jeito (me corrijam se eu estiver errado).
Um servidor pode ter N serviços do banco de dados e eles não conversam entre si a não ser que vc crie um DbLink. Podem ser parametrizados para trabalhar de diversas maneiras, diversos tamanho de bloco, versões diferentes, etc. Porém não é muito comum termos mais de um serviço do Oracle em um servidor.
Se for usuário, aí sim tem jeito. Use o comando:
select USERNAME from ALL_USERS
Serão retornados todos os usuários do banco de dados. Mas exige que vc já esteja conectado ao banco. O único probleminha que este select traria à vc é que este comando também apresenta os usuários de gerenciamento, como SYSTEM, SYS e outros. Exige um certo tratamento.
Espero ter ajudado.
Eu estou tentando buscar os Bancos de Dados cadastrados no SGBD, de forma a listá-los, para que o usuários selecione qual ele deseja utilizar.
Seria algo como se conectar ao SGBD e não a um banco específico e efetuar tal busca.
Não sei se agora ficou mais claro para entender.
Vc está falando por exemplo:
Banco1 -> ORCL (usuários A, B, C e D)
Banco2 -> XE (usuários E e F)
Banco3 -> PRODUCAO (usuários G, H e I)
Vc quer saber se no servidor existem os 3 serviços (Banco1, Banco2 e Banco3)?
Isso… Tipo BancoSite, BancoAplicacao… Saber quais os bancos de dados gerenciados pelo SGBD…
É possível efetuar tal busca?
Hum… Realmente aí eu não sei se existe algo que faça isso.
Mesmo se houver, creio que por medida de segurança, deve estar restrito ao servidor.
Normalmente, para estes casos, costumamos utilizar um arquivo de configuração.
O problema é que os nomes do bancos variam de cliente para cliente, esse é o problema de criar um arquivo fixo que faça isso…
Obrigado pela ajuda.
Mas os arquivos não poderiam estar nos clientes? Cada cliente realmente teria um arquivo de configuração próprio.
Realmente, é uma solução.
Muito obrigado pela ajuda…
Irei verificar a possibilidade de utilizar tal solução.