Oracle - Autoincrement con Store Procedure con pl sql

 
Vista:
sin imagen de perfil
Val: 6
Ha mantenido su posición en Oracle (en relación al último mes)
Gráfica de Oracle

Autoincrement con Store Procedure con pl sql

Publicado por Juan (3 intervenciones) el 11/07/2019 18:09:20
Buenas tardes tengo la siguiente consulta:

Tengo la siguiente tabla:

create table alumno(
id_alumno number primary key,
nombre_alumno varchar2(20)
);

Como podría realizar un procedimiento almacenado para ingresar el nombre
y que se genere el id en forma automática desde el 1 hasta n...registros

1 José
2 Juan
3 .......

Aparte de crear secuencias, hay otra forma de solucionar mi problema.

Gracias

Juan
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil
Val: 22
Ha mantenido su posición en Oracle (en relación al último mes)
Gráfica de Oracle

Autoincrement con Store Procedure con pl sql

Publicado por Cesar (8 intervenciones) el 11/07/2019 18:15:30
Hola.

SI utilizas Oracle 12C, solo declara la columna como numerica, identidad, y agregale generated always:

1
2
3
4
5
6
CREATE TABLE  TEST_TABLE_INCREMENTAL
("ID" NUMBER(10,0) GENERATED  ALWAYS AS IDENTITY MINVALUE 1
MAXVALUE 9999999999999999999999999999
INCREMENT BY 1 START WITH 1 CACHE 20  NOORDER  NOCYCLE  NOT NULL ENABLE,
"NAME" VARCHAR2(15)
 )

En versiones anteriores, tendras que usar secuencias, o triggers.

https://www.oracle.com/technetwork/es/articles/sql/oracle-database-columna-identidad-2775883-esa.html
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
sin imagen de perfil
Val: 6
Ha mantenido su posición en Oracle (en relación al último mes)
Gráfica de Oracle

Autoincrement con Store Procedure con pl sql

Publicado por Juan (3 intervenciones) el 11/07/2019 18:18:02
Buenas tardes:

Gracias por tu respuesta y tiempo, entonces no se puede hacer un procedimiento almacenado directo sin declarar antes en la tabla la secuencia o en todo caso crear una secuencia.

Atte.,

Juan
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 22
Ha mantenido su posición en Oracle (en relación al último mes)
Gráfica de Oracle

Autoincrement con Store Procedure con pl sql

Publicado por Cesar (8 intervenciones) el 11/07/2019 18:25:06
Si estas usando una version anterior a las 12C, es correcto.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
sin imagen de perfil
Val: 6
Ha mantenido su posición en Oracle (en relación al último mes)
Gráfica de Oracle

Autoincrement con Store Procedure con pl sql

Publicado por Juan (3 intervenciones) el 11/07/2019 18:30:07
Disculpa:

La última consulta, he visto casos pero sql server que si se puede hacer un Store P. para incrementar el código de 1 en 1; yo estoy utilizando la versión oracle 12 c, se puede realizar un store procedimiento como lo necesito. Si tuvieras algún link sobre eso.

Muchas gracias

Juan
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 22
Ha mantenido su posición en Oracle (en relación al último mes)
Gráfica de Oracle

Autoincrement con Store Procedure con pl sql

Publicado por Cesar (8 intervenciones) el 11/07/2019 18:52:09
Si estas usando 12C, solo define tu tabla como indique:

1
2
3
4
5
6
create table alumno(
id_alumno number primary key  GENERATED  ALWAYS AS IDENTITY MINVALUE 1
MAXVALUE 9999999999999999999999999999
INCREMENT BY 1 START WITH 1 CACHE 20  NOORDER  NOCYCLE  NOT NULL ENABLE,
nombre_alumno varchar2(20)
);

Y en tu SP, solo recibe de parametro el nombre, y envialo a la tabla (el ID se generara automaticamente).
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar