sexta-feira, 15 de agosto de 2008

Sequence!!! Terrível!?

Pessoal!

Todo o semestre acho que é bom relembrar! Sequence em Oracle! uffffff que mão hein!! Sql Server just (identity) mas aqui no oracle... ahhhhhh só com trigger!!!

Então está aih o exemplo.

SQL> create sequence T_SEQ_NEW start with 1 increment by 1 maxvalue 999 nocycle;

SQL> create table Cliente(Codigo number(4), Nome varchar2(100));

SQL> select * from Cliente;

SQL> insert into Cliente values (T_SEQ_NEW.NEXTVAL,'Professor Galina');

SQL> insert into Cliente values (T_SEQ_NEW.NEXTVAL,'Alunos');

SQL> select * from Cliente;
Codigo Nome
---------- ----------------------------------------
1 Professor Galina
2 Alunos

Link na prática --> http://www.devmedia.com.br/articles/viewcomp.asp?comp=402

Goood luck'
[]`s Galina.

3 comentários:

Sergeenho disse...
Este comentário foi removido pelo autor.
Sergeenho disse...

Tu falo do trigger mas nao coloco o trigger... Hehehe.

Se servir, aqui tem um exemplo:

--- EXEMPLO ---

CREATE TABLE station (
id number(11) NOT NULL,
car_pday number(11) NOT NULL,
name varchar(80),
current_date date
);

CREATE SEQUENCE s_station START WITH 1 INCREMENT BY 1 NOMAXVALUE;

CREATE TRIGGER n_station
BEFORE INSERT ON station
FOR EACH ROW
BEGIN
SELECT s_station.nextval INTO :new.id FROM DUAL;
END;
/

--- FIM EXEMPLO ---

Dai quando vai inserir os dados o ID vai automatico, eh soh colocar qualquer numero que o TRIGGER faz o trabalho da numeracao.

Espero que ajude.

[]s

Gabriel Albo Trindade disse...

Não sei no SQL Server, mas identity no Sybase dá uma dor de cabeça... dependendo da versão, muitas vezes ao reiniciar o server ele cria um "identity gap", pulando vários números na sequência - e quando digo "vários", quero dizer "vinte mil" - mais ou menos o que vi acontecer pessoalmente.

No Oracle costuma dar problema com sequences?

Abraço,
Gabriel