Re: [oracle_br] Re: Ajuda em Recriar Constraints
Marcio, Muito obrigado pela dica.. Eu usei a DBMS_METADATA.get_dependent_ddl que funcionou melhor no meu caso. Abraços, André --- Em qui, 16/10/08, Marcio Ribeiro <[EMAIL PROTECTED]> escreveu: De: Marcio Ribeiro <[EMAIL PROTECTED]> Assunto: [oracle_br] Re: Ajuda em Recriar Constraints Para: oracle_br@yahoogrupos.com.br Data: Quinta-feira, 16 de Outubro de 2008, 15:30 André, Qual a versão do banco que vc está usando ? Uma alternativa é usar a package DBMS_METADATA. Segue um exemplo: [EMAIL PROTECTED]/mrn1> create table t1 (cod int); Table created. [EMAIL PROTECTED]/mrn1> alter table t1 add constraint pk_t1 primary key (cod); Table altered. [EMAIL PROTECTED]/mrn1> create table t2 (cod int); Table created. [EMAIL PROTECTED]/mrn1> alter table t2 add constraint fk_t1 foreign key (cod) references t1 (cod); Table altered. [EMAIL PROTECTED]/mrn1> set long 4000 [EMAIL PROTECTED]/mrn1> select dbms_metadata. get_ddl(' REF_CONSTRAINT' ,'FK_T1') from dual; DBMS_METADATA. GET_DDL(' REF_CONSTRAINT' ,'FK_T1') - - - - - - ALTER TABLE "SYS"."T2" ADD CONSTRAINT "FK_T1" FOREIGN KEY ("COD") REFERENCES "SYS"."T1" ("COD") ENABLE 1 row selected. Olhe na documentação, essa package tem vários recursos. [ ]'s Marcio Ribeiro www.rbti.com. br --- Em [EMAIL PROTECTED] os.com.br, Gnomo dos prazeres carnais <[EMAIL PROTECTED] .> escreveu > > > > Prezados, > > > > Como recrio as constraints > FK que não foram criadas durante o import. > > Estou fazendo um select na DBA_CONS_COLUMNS, mas como tenho várias tabelas que tem > chaves compostas, ai mostra duas ou mais linhas para mesma constraint. > > > > Exemplo de > resultado na DBA_CONS_COLUMNS: > > FK_0510_0500_ CID_CODFUT TVA0510 CODFUT 2 > > FK_0510_0500_ CID_CODFUT TVA0510 CODCID 1 > > > > Preciso de um query que crie > da se seguinte maneira. > > alter table TVA0510 > > add constraint > FK_0510_0500_ CID_CODFUT foreign key (CODCID, CODFUT) > > references TVA0500 (CODCID, > CODFUT); > > > > > > Desde já agradeço a atenção. > > > > André > > > > > > > Novos endereços, o Yahoo! que você conhece. Crie um email novo com a sua cara @ymail.com ou @rocketmail. com. > http://br.new. mail.yahoo. com/addresses > > [As partes desta mensagem que não continham texto foram removidas] > __ Fale com seus amigos de graça com o novo Yahoo! Messenger http://br.messenger.yahoo.com/ [As partes desta mensagem que não continham texto foram removidas]
[oracle_br] Ajuda em Recriar Constraints
Prezados, Como recrio as constraints FK que não foram criadas durante o import. Estou fazendo um select na DBA_CONS_COLUMNS, mas como tenho várias tabelas que tem chaves compostas, ai mostra duas ou mais linhas para mesma constraint. Exemplo de resultado na DBA_CONS_COLUMNS: FK_0510_0500_CID_CODFUT TVA0510 CODFUT 2 FK_0510_0500_CID_CODFUT TVA0510 CODCID 1 Preciso de um query que crie da se seguinte maneira. alter table TVA0510 add constraint FK_0510_0500_CID_CODFUT foreign key (CODCID, CODFUT) references TVA0500 (CODCID, CODFUT); Desde já agradeço a atenção. André Novos endereços, o Yahoo! que você conhece. Crie um email novo com a sua cara @ymail.com ou @rocketmail.com. http://br.new.mail.yahoo.com/addresses [As partes desta mensagem que não continham texto foram removidas]
Re: RES: [oracle_br] duvida sobre referencia de objetos
Valeu Chiappa, Obrigado pela dica. Abracos, André --- Em qua, 1/10/08, jlchiappa <[EMAIL PROTECTED]> escreveu: De: jlchiappa <[EMAIL PROTECTED]> Assunto: Re: RES: [oracle_br] duvida sobre referencia de objetos Para: oracle_br@yahoogrupos.com.br Data: Quarta-feira, 1 de Outubro de 2008, 19:10 O colega usou ALL_DEPENDENCIES, as views ALL te mostram só o que o usuário conectado pode enxergar : talvez a questão seja que as dependências estão em ** outros ** schemas, a ALL não serve nesse caso, então consulte a DBA_DEPENDENCIES, tipo : select * from dba_dependencies where referenced_name= 'nomedoobjetoemq uestão'; evidentemente, podem haver dependências recursivas ,tipo, a tabela X é usada num sinônimo Y de nome diferente, E é esse sinônimo Y que ops programas acessam, isso (lógico) não apareceria na consulta acima, vc teria que depois fazer uma outra consulta pedindo por : select * from dba_dependencies where referenced_name= 'Y'; ok ? []s Chiappa --- Em [EMAIL PROTECTED] os.com.br, Gnomo dos prazeres carnais <[EMAIL PROTECTED] .> escreveu > > Renato, > > Infelizmente não funcionou como esperado . > No programa PL/SQL Developer ele mostrar no item "referenced by" dentro da tabela TESTE, que ele é referenciada por algumas views, alguns trigger e sinonimos publicos. > > No resultado do select abaixo so mostra o sinonimo. Porque, nao tenho grant de DBA, mas possuo acesso ao dicionario de dados. > > Alguem consegue me ajudar? > > Grato, > > André F Resende > > --- Em qua, 1/10/08, Usina Mandu S/A - Renato Ricci <[EMAIL PROTECTED] > escreveu: > De: Usina Mandu S/A - Renato Ricci <[EMAIL PROTECTED] > > Assunto: RES: [oracle_br] duvida sobre referencia de objetos > Para: [EMAIL PROTECTED] os.com.br > Data: Quarta-feira, 1 de Outubro de 2008, 12:05 > > > > > > > > > > > > Veja o SQL abaixo: > > > > select distinct type object_type, owner object_owner, name object_name > > > > from sys.all_dependencie s > > > > where referenced_owner = :referenced_ owner > > > > and referenced_name = :referenced_ name > > > > and (referenced_ type =:referenced_ type or (referenced_ type = 'UNDEFINED' and > > :referenced_ type = 'LIBRARY')) > > > > order by type, owner, name > > > > :REFERENCED_ OWNER = 'seu_owner' > > > > :REFERENCED_ NAME = 'sua_tabela' > > > > :REFERENCED_ TYPE = 'TABLE' > > > > Abraço, > > > > _ _ _ > > > > Renato Ribeiro Ricci > > > > Analista de Sistemas > > > > _ > > > > De: [EMAIL PROTECTED] os.com.br [mailto:oracle_ [EMAIL PROTECTED] os.com.br] Em > > nome de Gnomo dos prazeres carnais > > Enviada em: quarta-feira, 1 de outubro de 2008 11:35 > > Para: [EMAIL PROTECTED] os.com.br > > Assunto: [oracle_br] duvida sobre referencia de objetos > > > > Amigos, > > > > Como consigo ver qual objeto esta referenciando uma tabela. > > No programa PL/SQL Developer eu consigo ver, clico em tabelas , escolho a > > tabela e vou em "referenced by" ai ele me mostra que a tabela TESTE esta > > sendo referenciada (usada) na trigger trg_teste. > > Mas eu preciso ver este tipo de referencia via query.(select .. ) > > > > Alguem poderia me ajudar ? > > > > Desde já agradeço > > > > Abraços, > > > > André F Resende > > > > > > Novos endereços, o Yahoo! que você conhece. Crie um email novo com a sua > > cara @ymail.com ou @rocketmail. com. > > http://br.new. <http://br.new. mail.yahoo. com/addresses> > > mail.yahoo.com/ addresses > > > > [As partes desta mensagem que não continham texto foram removidas] > > > > [As partes desta mensagem que não continham texto foram removidas] > > > > > > > > > > > > > > > > > > > > > > > > > > > > Novos endereços, o Yahoo! que você conhece. Crie um email novo com a sua cara @ymail.com ou @rocketmail. com. > http://br.new. mail.yahoo. com/addresses > > [As partes desta mensagem que não continham texto foram removidas] > Novos endereços, o Yahoo! que você conhece. Crie um email novo com a sua cara @ymail.com ou @rocketmail.com. http://br.new.mail.yahoo.com/addresses [As partes desta mensagem que não continham texto foram removidas]
Re: RES: RES: [oracle_br] duvida sobre referencia de objetos
Ricardo, agora funcionou. Muito obrigado pela dica. André --- Em qui, 2/10/08, Usina Mandu S/A - Renato Ricci <[EMAIL PROTECTED]> escreveu: De: Usina Mandu S/A - Renato Ricci <[EMAIL PROTECTED]> Assunto: RES: RES: [oracle_br] duvida sobre referencia de objetos Para: oracle_br@yahoogrupos.com.br Data: Quinta-feira, 2 de Outubro de 2008, 7:22 Muito estranho André, pois eu tb não tenho privilégio de DBA e para mim está funcionando normalmente. . select distinct type object_type, owner object_owner, name object_name from sys.all_dependencie s where referenced_owner = 'coloque_seu_ owner' and referenced_name = 'coloque_sua_ tabela' and (referenced_ type ='TABLE' or (referenced_ type = 'UNDEFINED' and 'TABLE' = 'LIBRARY')) order by type, owner, name Esse código acima é para objetos do tipo ‘TABLE’, mas você poderia usar outros tipos tb como ‘PROCEDURE’, etc.. Esse código eu obtive usando o SQL Monitor, e monitorei o próprio SQL que o PL/SQL Developer manda para o banco.. QQ coisa instala o SQL Monitor ai e de uma monitorada de acordo com suas necessidades. . Abraço, _ _ _ Renato Ribeiro Ricci Analista de Sistemas _ De: [EMAIL PROTECTED] os.com.br [mailto:[EMAIL PROTECTED] os.com.br] Em nome de Gnomo dos prazeres carnais Enviada em: quarta-feira, 1 de outubro de 2008 17:57 Para: [EMAIL PROTECTED] os.com.br Assunto: Re: RES: [oracle_br] duvida sobre referencia de objetos Renato, Infelizmente não funcionou como esperado . No programa PL/SQL Developer ele mostrar no item "referenced by" dentro da tabela TESTE, que ele é referenciada por algumas views, alguns trigger e sinonimos publicos. No resultado do select abaixo so mostra o sinonimo. Porque, nao tenho grant de DBA, mas possuo acesso ao dicionario de dados. Alguem consegue me ajudar? Grato, André F Resende --- Em qua, 1/10/08, Usina Mandu S/A - Renato Ricci <[EMAIL PROTECTED] <mailto:suporte% 40mandu.com. br> com.br> escreveu: De: Usina Mandu S/A - Renato Ricci <[EMAIL PROTECTED] <mailto:suporte% 40mandu.com. br> com.br> Assunto: RES: [oracle_br] duvida sobre referencia de objetos Para: [EMAIL PROTECTED] <mailto:oracle_ br%40yahoogrupos .com.br> os.com.br Data: Quarta-feira, 1 de Outubro de 2008, 12:05 Veja o SQL abaixo: select distinct type object_type, owner object_owner, name object_name from sys.all_dependencie s where referenced_owner = :referenced_ owner and referenced_name = :referenced_ name and (referenced_ type =:referenced_ type or (referenced_ type = 'UNDEFINED' and :referenced_ type = 'LIBRARY')) order by type, owner, name :REFERENCED_ OWNER = 'seu_owner' :REFERENCED_ NAME = 'sua_tabela' :REFERENCED_ TYPE = 'TABLE' Abraço, _ _ _____ Renato Ribeiro Ricci Analista de Sistemas _ De: [EMAIL PROTECTED] os.com.br [mailto:oracle_ [EMAIL PROTECTED] os.com.br] Em nome de Gnomo dos prazeres carnais Enviada em: quarta-feira, 1 de outubro de 2008 11:35 Para: [EMAIL PROTECTED] os.com.br Assunto: [oracle_br] duvida sobre referencia de objetos Amigos, Como consigo ver qual objeto esta referenciando uma tabela. No programa PL/SQL Developer eu consigo ver, clico em tabelas , escolho a tabela e vou em "referenced by" ai ele me mostra que a tabela TESTE esta sendo referenciada (usada) na trigger trg_teste. Mas eu preciso ver este tipo de referencia via query.(select .. ) Alguem poderia me ajudar ? Desde já agradeço Abraços, André F Resende Novos endereços, o Yahoo! que você conhece. Crie um email novo com a sua cara @ymail.com ou @rocketmail. com. http://br.new. <http://br.new. mail.yahoo. com/addresses> mail.yahoo.com/ addresses [As partes desta mensagem que não continham texto foram removidas] [As partes desta mensagem que não continham texto foram removidas] Novos endereços, o Yahoo! que você conhece. Crie um email novo com a sua cara @ymail.com ou @rocketmail. com. http://br.new. <http://br.new. mail.yahoo. com/addresses> mail.yahoo.com/ addresses [As partes desta mensagem que não continham texto foram removidas] [As partes desta mensagem que não continham texto foram removidas] Novos endereços, o Yahoo! que você conhece. Crie um email novo com a sua cara @ymail.com ou @rocketmail.com. http://br.new.mail.yahoo.com/addresses [As partes desta mensagem que não continham texto foram removidas]
Re: RES: [oracle_br] duvida sobre referencia de objetos
Renato, Infelizmente não funcionou como esperado . No programa PL/SQL Developer ele mostrar no item "referenced by" dentro da tabela TESTE, que ele é referenciada por algumas views, alguns trigger e sinonimos publicos. No resultado do select abaixo so mostra o sinonimo. Porque, nao tenho grant de DBA, mas possuo acesso ao dicionario de dados. Alguem consegue me ajudar? Grato, André F Resende --- Em qua, 1/10/08, Usina Mandu S/A - Renato Ricci <[EMAIL PROTECTED]> escreveu: De: Usina Mandu S/A - Renato Ricci <[EMAIL PROTECTED]> Assunto: RES: [oracle_br] duvida sobre referencia de objetos Para: oracle_br@yahoogrupos.com.br Data: Quarta-feira, 1 de Outubro de 2008, 12:05 Veja o SQL abaixo: select distinct type object_type, owner object_owner, name object_name from sys.all_dependencie s where referenced_owner = :referenced_ owner and referenced_name = :referenced_ name and (referenced_ type =:referenced_ type or (referenced_ type = 'UNDEFINED' and :referenced_ type = 'LIBRARY')) order by type, owner, name :REFERENCED_ OWNER = 'seu_owner' :REFERENCED_ NAME = 'sua_tabela' :REFERENCED_ TYPE = 'TABLE' Abraço, _ _ _ Renato Ribeiro Ricci Analista de Sistemas _ De: [EMAIL PROTECTED] os.com.br [mailto:[EMAIL PROTECTED] os.com.br] Em nome de Gnomo dos prazeres carnais Enviada em: quarta-feira, 1 de outubro de 2008 11:35 Para: [EMAIL PROTECTED] os.com.br Assunto: [oracle_br] duvida sobre referencia de objetos Amigos, Como consigo ver qual objeto esta referenciando uma tabela. No programa PL/SQL Developer eu consigo ver, clico em tabelas , escolho a tabela e vou em "referenced by" ai ele me mostra que a tabela TESTE esta sendo referenciada (usada) na trigger trg_teste. Mas eu preciso ver este tipo de referencia via query.(select .. ) Alguem poderia me ajudar ? Desde já agradeço Abraços, André F Resende Novos endereços, o Yahoo! que você conhece. Crie um email novo com a sua cara @ymail.com ou @rocketmail. com. http://br.new. <http://br.new. mail.yahoo. com/addresses> mail.yahoo.com/ addresses [As partes desta mensagem que não continham texto foram removidas] [As partes desta mensagem que não continham texto foram removidas] Novos endereços, o Yahoo! que você conhece. Crie um email novo com a sua cara @ymail.com ou @rocketmail.com. http://br.new.mail.yahoo.com/addresses [As partes desta mensagem que não continham texto foram removidas]
[oracle_br] duvida sobre referencia de objetos
Amigos, Como consigo ver qual objeto esta referenciando uma tabela. No programa PL/SQL Developer eu consigo ver, clico em tabelas , escolho a tabela e vou em "referenced by" ai ele me mostra que a tabela TESTE esta sendo referenciada (usada) na trigger trg_teste. Mas eu preciso ver este tipo de referencia via query.(select .. ) Alguem poderia me ajudar ? Desde já agradeço Abraços, André F Resende Novos endereços, o Yahoo! que você conhece. Crie um email novo com a sua cara @ymail.com ou @rocketmail.com. http://br.new.mail.yahoo.com/addresses [As partes desta mensagem que não continham texto foram removidas]