Devolver el primarykey del registro insertado (oracle)

Guille
10 de Junio del 2005
Hola.
He creado el siguiente procedimiento:

CREATE OR REPLACE PROCEDURE SPALTAVEHICULO
(
MATRI IN VARCHAR2,
MARCA IN VARCHAR2,
MODELO IN VARCHAR2,
COLOR IN VARCHAR2
)
AS
BEGIN
INSERT INTO VEHICULO (PKVEHICULO, MATRICULA, MARCA, MODELO, COLOR) VALUES (SVEHICULO.NEXTVAL, MATRI, MARCA, MODELO, COLOR);
END;

Funciona, pero necesito que devuelva el valor de PKVEHICULO ya que se inserta mediante una secuencia y al hacer la llamada lo desconozco.

Si pudieseis reescribir el procedimiento lo agradeceria.

Gracias.

mouser
10 de Junio del 2005
Hola,
que te parece asi

CREATE OR REPLACE PROCEDURE SPALTAVEHICULO
(
MATRI IN VARCHAR2,
MARCA IN VARCHAR2,
MODELO IN VARCHAR2,
COLOR IN VARCHAR2,
vehiculo out number
)
AS
BEGIN
select SVEHICULO.NEXTVAL
into vehiculo
from dual;

INSERT INTO VEHICULO (PKVEHICULO, MATRICULA, MARCA, MODELO, COLOR)
VALUES (vehiculo, MATRI, MARCA, MODELO, COLOR);
END;



Guille
10 de Junio del 2005
Funciona !!
Muchas gracias. Te debo una.