Pessoal Lembrando que essa sintaxe (alter table ... rename constraint ...) é disponível a partir da versão 9i Release 2.
[ ]'s André Em 14 de maio de 2010 15:53, José Laurindo <jlchia...@yahoo.com.br>escreveu: > > > Acho q seria mais fácil que andar pra frente : > > => para PKs : > > select 'ALTER TABLE '|| CR.OWNER || '.' || CR.TABLE_NAME||' RENAME > CONSTRAINT ' || CR.CONSTRAINT_NAME||' TO PK_'||CR.TABLE_NAME || ';'); > from dba_constraints CR where owner in > ('listadeusuariosseparadaporvirgula') and constraint_type = 'P'; > > => para UKs : > select 'ALTER TABLE '|| CR.OWNER || '.' || CR.TABLE_NAME||' RENAME > CONSTRAINT ' || CR.CONSTRAINT_NAME||' TO UK_'||CR.TABLE_NAME || > to_char(num_linha, 'FM009') ';'); > from (select owner, table_name, constraint_name, rownum num_linha > from dba_constraints CR where owner in > ('listadeusuariosseparadaporvirgula') and constraint_type = 'U' > ) CR; > > e assim por diante pra FKs, Checks... Lógico que : > > a) esse código foi escrito de cabeça por mim, vc TEM que checar sintaxe, > adaptar para suas eventuais necessidades (se quiser restringir as tabs, ou o > que for) > > e > > b) ele não prevê as RESTRIÇOES do banco, como identificador com mais de 33 > caracteres, pruma eventual tabela grande ao concatenar prefixos e sufixos > (como a gente faz) pode dar bode > > e > > c) ele não checa se o nome gerado Já Existe no banco, se já existir vai dar > bode > > []s > > Chiappa > > --- Em oracle_br@yahoogrupos.com.br <oracle_br%40yahoogrupos.com.br>, Jose > Luis Ramos <jose.ramos.caj...@...> escreveu > > > > > Boa tarde, gostaria de uma ajuda para criação de um script genérico (para > > rodar numa base qualquer) que recrie as constraints que estejam com nomes > do > > tipo SYS_123456 para um nome usando um padrão. Os padrões que adotei aqui > > para a equipe de desenvolvimento foi: > > > > PRIMARY KEYS: PK_<nnnnn>, onde "nnnnn" é o nome da tabela onde será > criada a > > PK > > > > > > > > UNIQUE KEYS: UK_<nnnnn>_<no>, onde "nnnnn" é o nome da tabela onde será > > criada a constraint de UNIQUE e <no> é um número seqüencial caso haja > mais > > de uma constraint de UNIQUE para a tabela. > > > > > > > > FOREIGN KEYS: FK_PPPPP_CCCCC_NN onde > > > > PPPPP = NOME DA TABELA PAI > > > > CCCCC = NOME DA TABELA FILHA > > > > NN = Um número seqüencial para garantir que o nome seja único > > > > > > > > CHECK CONSTRAINT: CHK_PPPPP_FFFFF, onde > > > > PPPPP = Nome da tabela onde foi definida a constraint > > > > FFFFF = Nome do campo sobre o qual é definida a constraint de check > > > > Agradeço qualquer ajuda. > > > > -- > > Jose Luis Ramos Jr > > Campinas - SP > > Oracle OCP DBA 8i, 9i,10g > > Fone: 19-37056793 > > > > > > [As partes desta mensagem que não continham texto foram removidas] > > > > > [As partes desta mensagem que não continham texto foram removidas] ------------------------------------ -------------------------------------------------------------------------------------------------------------------------- >Atenção! As mensagens do grupo ORACLE_BR são de acesso público e de inteira >responsabilidade de seus remetentes. Acesse: http://www.mail-archive.com/oracle_br@yahoogrupos.com.br/ -------------------------------------------------------------------------------------------------------------------------- >Apostilas » Dicas e Exemplos » Função » Mundo Oracle » Package » Procedure » >Scripts » Tutoriais - O GRUPO ORACLE_BR TEM SEU PROPRIO ESPAÇO! VISITE: >http://www.oraclebr.com.br/ ------------------------------------------------------------------------------------------------------------------------ Links do Yahoo! Grupos <*> Para visitar o site do seu grupo na web, acesse: http://br.groups.yahoo.com/group/oracle_br/ <*> Para sair deste grupo, envie um e-mail para: oracle_br-unsubscr...@yahoogrupos.com.br <*> O uso que você faz do Yahoo! Grupos está sujeito aos: http://br.yahoo.com/info/utos.html