590272 1
919 palavras
4 páginas
Criando Outros ObjetosSequences
Sintaxe
Opções
Exemplos
Verificando sua Existência
Comando INSERT Utilizando ―nextval‖
Obtendo o Valor Corrente da Sequence com ―currval‖
Visualizando a Descrição da Sequence
Sinônimos
Sinônimo Privado
Sinônimo Público
Exemplo
Uso de Sinônimos com Database Links
1
Sequences
Quando uma aplicação necessita utilizar valores numéricos seqüenciais em uma tabela, ela faz uso de um objeto chamado sequence. Com ele os valores serão gerados automaticamente pelo Oracle.
Ela é um objeto que os usuários podem utilizar para geração de números sem haver repetição de valores. Geralmente seu uso está associado a geração de valores para chaves primárias. Quando um número é gerado, a sequence é incrementada, independente da transação realizar commit ou rollback.
Se dois usuários concorrentes solicitam valores a mesma sequence, os valores gerados serão obrigatoriamente diferentes. A princípio um usuário nunca conseguirá acessar o mesmo número que foi gerado para outro usuário.
1
Sequences
Os números de uma sequence são gerados independentemente das tabelas, portanto uma mesma sequence pode ser utilizada para múltiplas tabelas.
É possível ter a impressão de que os números gerados possam estar sofrendo ―pulos‖. Isto ocorre por causa do acesso concorrente dos usuários.
Após uma sequence ser criada, seus valores podem ser solicitados em comandos SQL, utilizando-se de recursos especiais chamados ―pseudo-colunas‖:
CURRVAL: retorna o valor corrente;
NEXTVAL: incrementa/decrementa a sequence e retorna um novo valor.
2
Sintaxe
Create sequence <nome_da_sequence>
[increment by n]
[start with n]
[maxvalue n | nomaxvalue] or [minvalue n | nominvalue]
[cycle | nocycle]
[cache n | nocache];
Pré requesitos:
Para criar uma sequence em seu ― schema‖, deve-se ter o privilégio
CREATE SEQUENCE
Para criar uma sequence em qualquer ―schema‖, deve-se ter o privilégio
CREATE ANY SEQUENCE
3
Opções
Opção
Descrição
nome_da_sequence Nome do objeto, não