Xará
Se não houver uma concorrência muito alta para inclusão nessa tabela, teste
fazer um trigger assim:
CREATE OR REPLACE tg_inc_sua_tabela
BEFORE INSERT ON sua_tabela
FOR EACH ROW
BEGIN
SELECT MAX( sq_registro ) + 1
INTO :NEW.sq_registro
FROM sua_tabela
WHERE tp_registro = :NEW.tp_registro;
END;
/
Imagino que o índice da chave primária tenha a coluna "TP_REGISTRO" em
primeiro lugar (para melhor desempenho).
[ ]
André
Em 02/08/08, André Alves <[EMAIL PROTECTED]> escreveu:
>
> Tenho uma situação semelhante a do Márcio e não posso utilizar SEQUENCE,
> pois a chave é composta. A minha tabela de chaves tem duas colunas
>
> TP_REGISTRO VARCHAR2(5) NOT NULL (PK)
>
> SQ_REGISTRO NUMBER(10) NOT NULL
>
> Temos várias rotinas que executam BATCH e que obtém a chave por esta
> tabela.
> Nós estamos utilizando SELECT FOR UPDATE para locar o registro, porém
> aparentemente está dando DEAD LOCK, a sessão fica presa e cai com SNAPSHOT
> TOO OLD.
>
> Nossa versão de Oracle é o 9.0.2 em HPUX. Se alguém tiver alguma idéia...
>
> _____
>
> De: [email protected] <oracle_br%40yahoogrupos.com.br> [mailto:
> [email protected] <oracle_br%40yahoogrupos.com.br>] Em
> nome de Diego Leite
> Enviada em: sábado, 2 de agosto de 2008 11:55
> Para: [email protected] <oracle_br%40yahoogrupos.com.br>
> Assunto: Re: [oracle_br] Lock Table...
>
> Lock Table nao e aconselhavel pela ORACLE. Pq nao criar uma
> sequence?Imagine 2 sistemas(com N usuarios tentando acessar essa
> tabela locada!!
>
> 2008/8/1 Márcio Ricardo Alves da Silva <[EMAIL PROTECTED]
> <mailto:marcio_cbj%40yahoo.com.br <marcio_cbj%2540yahoo.com.br>> com.br>:
> > Untitled DocumentBoas.
> >
> > a utlização do comando Lock Table é aconselhável a sua utilização? Estou
> com uma situação que o ID de uma tabela é gerado "manualmente" sem sequence
> e hoje dois sistemas utilizam esse ID, e aonteceu de os sistemas pegarem o
> mesmo ID. Pensei em pegar o ID só na hora da gravação do registro, acho
> mais
> garantido mais não 100%.
> >
> >
> > ---------------------------------------------
> > Márcio Ricardo Alves da Silva
> > Programador .Net
> > OCA 9i
> > marcio.silva@
> > <mailto:marcio.silva%40config.com.br<marcio.silva%2540config.com.br>>
> config.com.br
> >
> > Config Informática Ltda
> > Av. Eng. Luis Carlos Berrine, 801 - 7o. andar
> > 04571-010 - Brooklin Novo - São Paulo - SP
> > Fone (11) 5501-8300
> > Fax (11) 5501-8302
> > www.config.com.br
> >
> >
> > [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-
> <http://www.mail-archive.com/[email protected]/>
> archive.com/[email protected]<archive.com%2Foracle_br%40yahoogrupos.com.br>
> /
> > ----------------------------------------------------------
> >>Funções, Procedures, propostas de emprego - O GRUPO ORACLE_BR TEM SEU
> PROPRIO ESPAÇO! VISITE: http://www.oraclebr <http://www.oraclebr.com.br/>
> .com.br/
> > ---------------------------------------------------------- Links do
> Yahoo!
> Grupos
> >
> >
> >
>
> --
> Att,
>
> Diego Leite - DBA Jr.
>
> Internal Virus Database is out of date.
> Checked by AVG - http://www.avg.com
> Version: 8.0.138 / Virus Database: 270.5.6/1575 - Release Date: 7/26/2008
> 4:18 PM
>
> [As partes desta mensagem que não continham texto foram removidas]
>
>
>
[As partes desta mensagem que não continham texto foram removidas]