Caros,

Realmente eu já tinha noção dessa diferença entre os dois bancos, mas não tinha 
assimilado esse conceito que agora ficou claro. Consegui fazer o que eu queria 
pela tabela DBA_TAB_COLUMNS.

[]'s

Germas

--- Em oracle_br@yahoogrupos.com.br, "aabarroso" <aabarroso1985@...> escreveu
>
> germas_ferreira, acho que o Chiappa já explicou alguns conceitos que, creio 
> eu, estavam confusos em sua cabeça, sobre algumas diferenças entre Oracle e 
> MSSQL. 
> 
> Comparado ao MSSQL, o Oracle facilita bastante na utilização do dicionário de 
> dados. Com DBA_TAB_COLUMNS você consegue toda informação que precisa, sem a 
> necessidade de fazer um join entre duas ou mais views/tabelas (como seria no 
> SQL Server). A própria DBA_TAB_COLUMNS já faz esses joins pra você.
> 
> Imagino que, pelo o que eu entendi, tudo o que você precisa fazer é inserir 
> um filtro por "owner", pra que você possa limitar os resultados por schema e 
> não retornar todas as tabelas de seu BD.
> Se pretende trabalhar com Oracle daqui pra frente, experimente ler e entender 
> o que o Chiappa disse, além de, é claro, procurar em manuais ou artigos na 
> internet, sobre a arquitetura do Oracle ou até mesmo suas principais 
> diferenças do SQL Server.
> Aqui tem muita informação: http://tahiti.oracle.com/
> 
> Exemplo (talvez ajude, não sei):
> 
> select table_name, column_name, data_type, data_length
> from dba_tab_columns
> where owner = 'SCHEMA_DO_SISTEMA';
> 
> PS: Se você precisa realmente do "id", o que eu acho muito difícil (ou talvez 
> desnecessário), sugiro que procure informações sobre as tabelas sys.col$, 
> sys.obj$, sys.coltype$, sys.user$, etc...
> 
> []'s
> 
> --- Em oracle_br@yahoogrupos.com.br, "germas_ferreira" <germas_ferreira@> 
> escreveu
> >
> > Oi aabarroso,
> > 
> > Vou explicar o que ocorre: Tenho que obter o syscolumns.length e 
> > systypes.name, até aqui aqui eu sei q posso encontrar essas informações nas 
> > tabelas User_tab_columns ou User_Table.
> > 
> > Mas o problema chega no trecho abaixo:
> > syscolumns.id = (Select id from sysobjects where name = @NM_TAB)
> > onde o syscolumns.id  é o mesmo que o sysobjects.id. E eu tenho que fazer 
> > algo parecido, pois devo pegar o sysobjects.id(Object_id) que ele irá me 
> > retornar a especificamente o ID da tabela que eu quero para filtrar com o 
> > nome da coluna.
> > 
> > Já tentei fazer com o COLUMN_ID, mas não da certo, pois tenho vários bancos 
> > parecidos e isso vai me retornar todos os registros de colunas que estão em 
> > cada banco e com o OBJECT_ID não, ele vai buscar em um banco especifico.
> > 
> > Tentei da um describe e o ORACLE diz que não suporta esse tipo de comando.
> > 
> > Att.
> > 
> > 
> > 
> > --- Em oracle_br@yahoogrupos.com.br, "aabarroso" <aabarroso1985@> escreveu
> > >
> > > Ei germas_ferreira...
> > > Talvez seja mais prático se você disser que informação precisa extrair do 
> > > BD...
> > > 
> > > Por exemplo:
> > > Quer propriedades da tabela da coluna que você tá procurando? Talvez seja 
> > > melhor utilizar user_tables invés de user_objects... 
> > > 
> > > O join pode ser ser feito pelas colunas comuns entre as duas views. Não 
> > > precisa ser necessariamente um ID, pode ser a coluna "table_name", por 
> > > exemplo.
> > > 
> > > Se você der um describe nas views/tabelas, pode ver as colunas comuns 
> > > entre elas...
> > > 
> > > []'s
> > > 
> > > --- Em oracle_br@yahoogrupos.com.br, "germas_ferreira" <germas_ferreira@> 
> > > escreveu
> > > >
> > > > Só mas uma coisa, como eu faço a junção entre as colunas 
> > > > USER_TAB_COLUMNS e USER_OBJECTS???
> > > > 
> > > > --- Em oracle_br@yahoogrupos.com.br, "germas_ferreira" 
> > > > <germas_ferreira@> escreveu
> > > > >
> > > > > Obrigado, me ajudou muito essa informação!!!
> > > > > 
> > > > > 
> > > > > 
> > > > > --- Em oracle_br@yahoogrupos.com.br, "aabarroso" <aabarroso1985@> 
> > > > > escreveu
> > > > > >
> > > > > > DBA_TYPES, DBA_TAB_COLUMNS, DBA_OBJECTS, respectivamente.
> > > > > > 
> > > > > > Se não estiver conectado como DBA, pode utilizar USER_ ou ALL_ ao 
> > > > > > invés de DBA_.
> > > > > > 
> > > > > > Se quer fazer um join entre columns e types pra mostrar o tipo de 
> > > > > > cada coluna, talvez só a DBA_TAB_COLUMNS resolva o seu problema.
> > > > > > 
> > > > > > Dê um "desc" em DBA_TAB_COLUMNS e veja se possui as colunas que 
> > > > > > você precisa...
> > > > > > 
> > > > > > []'s
> > > > > > 
> > > > > > 
> > > > > > --- Em oracle_br@yahoogrupos.com.br, "germas_ferreira" 
> > > > > > <germas_ferreira@> escreveu
> > > > > > >
> > > > > > > Bom Dia!
> > > > > > > 
> > > > > > > Abaixo tenho três tabelas em SQL e queria saber quais são as 
> > > > > > > respectivas tabelas equivalentes em Oracle:
> > > > > > > 
> > > > > > >  - systypes
> > > > > > >  - syscolumns
> > > > > > >  - sysobjects
> > > > > > > 
> > > > > > > Pois pretendo fazer um join entre as duas primeiras mas não 
> > > > > > > consegui achar chaves equivalentes.
> > > > > > > 
> > > > > > > Alguém poderia me ajudar? 
> > > > > > > 
> > > > > > > Obrigado!
> > > > > > >
> > > > > >
> > > > >
> > > >
> > >
> >
>


Responder a