Boa tarde a todos, e obrigado pela atenção. Chiappa a minha situação não é bem essa que você descreveu...........eu preciso que o campo status tenha apenas um registro preenchido com o valor "Pendente" na tabela inteira, e não por ID. Imagina uma tabela de histórico de acoes corretivas. Nesta tabela eu posso ter "varias" ações cadastradas (com vários id's diferentes) mas eu só posso ter UMA ação pendente de execução por vez, por isso minha necessidade, eu só posso cadastrar uma nova ação corretiva quando a ultima ações estiver concluída. Não sei se fui claro. Vou dar uma pesquisada melhor em índice baseado em função, que pelo que vi, é o que vai resolver meu caso.
Obrigado a todos. Emerson Sanches Analista de Sistemas Em 7 de junho de 2013 12:08, J. Laurindo Chiappa <[email protected]>escreveu: > ** > > > Bom, pelo que entendi a sua questão é ter uma 'constraint', um check de > unicidade apenas para o valor de STATUS=PENDENTE, permitindo que o mesmo ID > tenha vários registros com STATUS='CONCLUÍDO', certo ? Se sim, imagino que > seria usar um índice de função unique , cfrme > http://asktom.oracle.com/pls/asktom/f?p=100:11:0::::P11_QUESTION_ID:21389386132607... > Mas isso é BEM unusual - se o ID é uma parte de chave e representa um > elemento único , ID + STATUS deveria ser único , indicando que em algum > momento o ID=1 ficou PENDENTE, até que em algum momento esse ID=1 se tornou > CONCLUIDO, e uma vez atingido status CONCLUIDO esse ID = 1 ** não ** > deveria aceitar mais entradas de COMCLUIDO ... Neste caso a idéia seria > simplesmente se ter uma constraint CHECK STATUS IN ('PENDENTE', > 'CONCLUIDO', E um índice unique on (ID, STATUS) : aí sim, o mesmo ID não > poderia ter mais de um registro PENDENTE ou mais de um registro CONCLUIDO , > o que me parece ser o "normal" .... > > []s > > Chiappa > --- Em [email protected], Emerson Sanches <emerson.sanches@...> > escreveu > > > > > Bom dia pessoal da lista. Tenho uma tabela que tem a seguinte estrutura: > > > > ID, > > DESCRICAO, > > STATUS > > > > No campo status posso ter o valor Pendente ou Concluido. O meu problema > é o > > seguinte, eu queria bloquear a inserção de 2 registros com o campo > STATUS = > > Pendente. Hoje pra restringir isso eu faço um cursor na SP e antes da > > inclusão/alteração do registro eu verifico se ja nao existe outro > registro > > com o valor "Pendente" se existir eu gero um exceção e bloqueio a > > inserção/alteração. > > Gostaria de saber se existe outra forma de fazer isso, algo como um > > constraint nativa do Oracle. > > > > PS: No campo STATUS poderão ocorrer varios registros com o valor igual a > > "Concluido". > > > > Obrigado pela atenção. > > > > Emerson Sanches > > Analista de Sistemas > > > > > > [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/[email protected]/ -------------------------------------------------------------------------------------------------------------------------- >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: [email protected] <*> O uso que você faz do Yahoo! Grupos está sujeito aos: http://br.yahoo.com/info/utos.html
