Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » Oracle »

secuencial

Estas en el tema de secuencial en el foro de Oracle en Foros del Web. buenas noches que tal, tenia una consulta estaba investigando en internet como crear un secuencial en oracle y encontre esto CREATE SEQUENCE nombre_secuencia INCREMENT BY ...
  #1 (permalink)  
Antiguo 26/03/2008, 08:59
 
Fecha de Ingreso: diciembre-2007
Ubicación: Panama
Mensajes: 100
Antigüedad: 17 años
Puntos: 0
secuencial

buenas noches que tal, tenia una consulta
estaba investigando en internet como crear un secuencial en oracle


y encontre esto

CREATE SEQUENCE nombre_secuencia
INCREMENT BY numero_incremento
START WITH numero_por_el_que_empezara
MAXVALUE valor_maximo | NOMAXVALUE
MINVALUE valor_minimo | NOMINVALUE
CYCLE | NOCYCLE
ORDER | NOORDER

lo que no entendi fue para que se usa | NOMAXVALUE o eso va seguido del valor maximo osea que igual significa el valor maximo

y esto tambien
CYCLE | NOCYCLE
ORDER | NOORDER

mas o menos entiendo pero quiero estar un poco mas claro para no hacer las cosas mecanicamente

y tambien encontre este otro


el ejemplo de abajo se ve mas sencillo

CREATE SEQUENCE mitabla INCREMENT BY 1 START WITH 1 MAXVALUE 10 NOCYCLE CACHE 20 NOORDER;


lo que no entendi fue esto

NOCYCLE CACHE 20 NOORDER;

para que se usa NOCYCLE CACHE

y
NOORDER
  #2 (permalink)  
Antiguo 26/03/2008, 19:22
Avatar de kikolice  
Fecha de Ingreso: marzo-2004
Mensajes: 1.510
Antigüedad: 20 años, 9 meses
Puntos: 7
Re: secuencial

maxvalue = el valor maximo al que la secuencia puede llegar | nomaxvalue = no tiene valor maximo

cycle = (sin no mal recuerdo) para que cuando llegue al maxvalue la secuencia comience de nuevo | nocycle = cuando llegue al maxvalue ahi se quede (nunca se me ha ocurrido probar que pasa cuando llega al maxvalue)

order y cache la verdad es que no me acuerdo, hay que revisar la doc de nuevo
__________________
Blogzote.com :-) Mi blog
  #3 (permalink)  
Antiguo 02/04/2008, 21:32
 
Fecha de Ingreso: diciembre-2007
Ubicación: Panama
Mensajes: 100
Antigüedad: 17 años
Puntos: 0
Re: secuencial

gracias por la aclaracion saludos
  #4 (permalink)  
Antiguo 02/04/2008, 21:35
 
Fecha de Ingreso: diciembre-2007
Ubicación: Panama
Mensajes: 100
Antigüedad: 17 años
Puntos: 0
Re: secuencial

buenas noches que tal


Deseo hacer un secuencial utilizando una letra, año, mes, y 6 numeros


estaba intentando algo asi
este es uno que ise y utilizo con numero

CREATE SEQUENCE MI_SECUENCIAL INCREMENT BY 1 START WITH concat('L', (substr(SYSDATE,7,4)), (substr(SYSDATE,4,2)), 10001) MAXVALUE concat('L', (substr(SYSDATE,7,4)), (substr(SYSDATE,4,2)), 99999) NOCYCLE CACHE 20 NOORDER;


lo que trato de hacer es concatenar y despues incrementar en uno

para que me salga este codigo en secuencial ejemplo

L20080410001

letra, año ,el mes pero en numero, y el codigo que son 5 digitos

no se si se podra hacer asi, no puedo probarlo ya que no tengo oracle intalado en mi pc, o para ver si alguien tiene una mejor idea o si eso no se peude hacer en oracle
  #5 (permalink)  
Antiguo 03/04/2008, 02:55
Avatar de matanga  
Fecha de Ingreso: octubre-2007
Ubicación: España
Mensajes: 1.091
Antigüedad: 17 años, 1 mes
Puntos: 85
Re: secuencial

Hola,

Las secuencias son numericas de hasta 38 digitos, ni fechas ni letras.

Otra consideracion es que no te garantizan correlatividad, te puede pasar, por ejemplo,

1. CACHE 20, como la estas definiendo, esto significa que Oracle almacena grupos de 20 numeros en memoria para optimizar la entrega, si en este momento tienes una caida de la instancia, los 20 numeros se pierden, y en la siguiente utilizacion de la sequencia se perdera la correlatividad.

2. Una vez pedido un numero no puedes arrepentirte, imagina que pides uno para hacer un insert, en medio de la transaccion decides hacer rollback y deshacer el insert, en este caso no puedes devolverle el numero a la secuencia, y nuevamente pierdes la correlatividad.

Las sequencias solo garantizan un numero unico.

Para lograr este codigo L20080410001, tendras que componerlo cada vez que realizas un insert.

Saludos
  #6 (permalink)  
Antiguo 03/04/2008, 07:26
 
Fecha de Ingreso: diciembre-2007
Ubicación: Panama
Mensajes: 100
Antigüedad: 17 años
Puntos: 0
Re: secuencial

gracias, no sabia eso del cache
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 08:42.