• Domingo 22 de Diciembre de 2024, 18:29

Autor Tema:  Secuencial  (Leído 2114 veces)

alexis17

  • Miembro MUY activo
  • ***
  • Mensajes: 378
    • Ver Perfil
    • http://www.codigobasico.net
Secuencial
« en: Miércoles 26 de Marzo de 2008, 03:54 »
0
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
Cada dia aprendo algo nuevo

alexis17

  • Miembro MUY activo
  • ***
  • Mensajes: 378
    • Ver Perfil
    • http://www.codigobasico.net
Re: Secuencial
« Respuesta #1 en: Jueves 3 de Abril de 2008, 05:22 »
0
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
Cada dia aprendo algo nuevo

JuanK

  • Miembro de ORO
  • ******
  • Mensajes: 5393
  • Nacionalidad: co
    • Ver Perfil
    • http://juank.io
Re: Secuencial
« Respuesta #2 en: Miércoles 30 de Abril de 2008, 06:44 »
0
CYCLE | NOCYCLE

Si la secuencia alcanza su valor maximo... vuelve a empezar desde su valor mínimo.

ORDER | NOORDER

solo aplica si utilizas servidores trabajando oracle con la opcion de parall server.

CACHE 20

Quiere decir que al primer llamado de nextval que haces oracle deja listos en memoria 20 iteraciones de la secuencia y  no volvera a realizar transaccion completa de secuencia sino hasta agotar esos 20, cuando los agora pa por otros 20 etc..

si sierras la sesion y te faltaban usar algunos para completar los 20... los pierdes.
[size=109]Juan Carlos Ruiz Pacheco
[/size]
Microsoft Technical Evangelist
@JuanKRuiz
http://juank.io