Pessoal,
Preciso criar uma trigger que ao inserir em uma determinada tabela crie uma sequência definida a partir de 4001 - inserindo no atributo código de cliente ...
Como criar Trigger para sequencia
-
- Moderador
- Mensagens: 1396
- Registrado em: Sex, 01 Fev 2008 2:06 pm
- Localização: Rio de Janeiro - RJ
- Contato:

-- Create sequence
create sequence NOME_SEQ
minvalue 1
maxvalue 999999999999999999999999999
start with 4001
increment by 1
cache 20;
--Trigger
create or replace trigger TRG_NOME
before insert on NOME_TABELA
for each row
declare
-- local variables here
begin
SELECT NOME_SEQ.nextval
INTO :new.ID
FROM dual;
end TRG_NOME;
-
- Moderador
- Mensagens: 1177
- Registrado em: Qui, 15 Out 2009 10:28 am
- Localização: Recife
create sequence SEQUENCIAL
minvalue 1
maxvalue 9999999999
start with 4001
increment by 1;
create or replace trigger SUATRIGGER after insert on TABELA for each row
declare
vSeq number;
begin
select SEQUENCIAL.nextval
into vSeq
from dual;
:new.seu_campo := vSeq;
end SUATRIGGER;
-
- Moderador
- Mensagens: 1177
- Registrado em: Qui, 15 Out 2009 10:28 am
- Localização: Recife
Muda sua trigger para after insert or update, (temporariamente),
depois faça,
update tabela set qualquercampo = qualquercampo;
A idéia é, forçar a trigger a disparar para que ela preencha, manjou?
outra solução seria fazer um loop na tabela e então chamar o sequencial e dar o update,
a solucao da trigger é mais rapido/facil, meio gambi, mas rola...

qualquer coisa posta aí...
depois faça,
update tabela set qualquercampo = qualquercampo;
A idéia é, forçar a trigger a disparar para que ela preencha, manjou?
outra solução seria fazer um loop na tabela e então chamar o sequencial e dar o update,
a solucao da trigger é mais rapido/facil, meio gambi, mas rola...

qualquer coisa posta aí...
-
- Informação
-
Quem está online
Usuários navegando neste fórum: Google Adsense [Bot] e 4 visitantes