segunda-feira, 8 de novembro de 2010

Encontrando tabelas no SQL e no Oracle

Segue aqui informação importante e consideravel para agilizar busca de tabelas no SQL Server e também no Oracle.

Temos situações importantes em que precisamos encontrar algumas tabelas dentro do banco de dados. A medida em que o banco de nossa empresa vai crescendo, temos que ter formas rápidas de encontrar estes objetos.

No SQL 2008 temos duas formas:
SELECT * FROM SYS.TABLES e SELECT * FROM SYS.OBJECTS WHERE TYPE = 'U'

Onde na segunda consulta temos o filtro TYPE = 'U' que significa USER_TABLE, ou Tabela de Usuário. Pois temos no SQL o conceito de schema, que podemos ter objetos de mesmo nome mas em schemas diferentes.

No Oracle temos o seguinte comando:
SELECT * FROM DBA_TABLES ou SELECT * FROM USER_TABLES

Assim como no SQL o Oracle tem o conceito de owner ou o dono da tabela. O que significa isso?

Quando estamos no Oracle, acessamos sempre com algum usuário. Se estamos logados no Oracle com o usuário USER1, criamos a tabela CLIENTES e se logarmos com outro usuário, por exemplo, USER2 e rodarmos a segunda consulta buscando pela tabela CLIENTES nada será retornado.
Diferente da primeira consulta, que traz todas as tabelas independente do owner, a segunda filtra sempre pelo usuário logado naquela seção.

Então esta foi uma demonstração de como realizar busca de tabelas no SQL e no Oracle.

Nenhum comentário:

Postar um comentário