elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.


 


Tema destacado: [AIO elhacker.NET 2015] Compilación herramientas análisis y desinfección malware


+  Foro de elhacker.net
|-+  Programación
| |-+  Desarrollo Web
| | |-+  Bases de Datos (Moderador: Carloswaldo)
| | | |-+  orden de incremento en secuencia Oracle
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: orden de incremento en secuencia Oracle  (Leído 470 veces)
d91

Desconectado Desconectado

Mensajes: 151


Ver Perfil
orden de incremento en secuencia Oracle
« en: 11 Octubre 2015, 13:53 »

alguien me podría decir que le hace falta a esta secuencia de Oracle para que siempre mantenga el orden de incremento, puesto que al cerrar la base de datos y volverla a abrir me aparece incrementada hasta 10 valores arriba de donde se había quedado antes de cerrar la base de datos
Código
  1. CREATE SEQUENCE NUEVASEQUENCIA
  2. START WITH 1
  3. INCREMENT BY 1
  4. MINVALUE 1
  5. NOMAXVALUE;
  6.  
de una vez les dejo el trigger que la hace funcionar
Código
  1. CREATE OR REPLACE TRIGGER T_INCREMENTAR
  2. BEFORE INSERT ON TAB_RANGO
  3. FOR EACH ROW
  4. SELECT NUEVASEQUENCIA.NEXTVAL INTO :NEW.IDRANGO FROM DUAL;
  5. END;
  6.  
  7.  


En línea

Carloswaldo
Traductor
Moderador Global
***
Desconectado Desconectado

Mensajes: 4.711


Nos reservamos el derecho de ban.


Ver Perfil WWW
Re: orden de incremento en secuencia Oracle
« Respuesta #1 en: 13 Octubre 2015, 17:26 »

Hola,

Esto muy probablemente ocurre por el modo en que se comporta el caché para secuencias de Oracle. Por defecto Oracle pone en caché un número de valores de la secuencia para usarlos más rápido, pero si la base de datos se cae o se apaga, esos valores se pierden.

https://docs.oracle.com/cd/B12037_01/server.101/b10759/statements_6014.htm

Para que esto no ocurra podrías poner la opción NOCACHE al crear la secuencia. Aunque lo más óptimo sería que la base de datos no tenga que apagarse a cada rato.

Citar
On thing that should be mentioned is that there is no guarantee that a sequence will not be lost. If the sequence is cached, or if a transaction that used a sequence is rolled back, then loss of that sequence number is possible in the event of a database shutdown or crash. Sequences should not be used with the expectation of:

1. Preservation of each number in the sequence.
2. Monitonical purity of the sequence being generated.

http://dbaforums.org/oracle/index.php?s=14afceab24ace3a29a6b0a2a44b55730&showtopic=917&view=findpost&p=2891


En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Oracle presenta Oracle Database 11g
Noticias
Isirius 0 660 Último mensaje 16 Julio 2007, 12:14
por Isirius
Incremento de ping
Dudas Generales
1shot 6 1,107 Último mensaje 29 Julio 2007, 06:14
por Ragnarok
progunta incremento de for?
Programación C/C++
andaluz 5 1,179 Último mensaje 7 Abril 2009, 18:19
por DarkItachi
[ORACLE-JAVA] java.lang.ClassNotFoundException: oracle.jdbc.driver.OracleDriver
Java
abrtx 2 4,675 Último mensaje 21 Junio 2011, 15:35
por abrtx
se puede incremento en id?
Desarrollo Web
basickdagger 3 1,055 Último mensaje 15 Junio 2012, 13:43
por basickdagger
Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines