Oracle - PROCEDIMIENTO INSERTA EN DOS TABLAS DIFERENTES

 
Vista:

PROCEDIMIENTO INSERTA EN DOS TABLAS DIFERENTES

Publicado por HOMERO (1 intervención) el 17/11/2021 05:32:12
Estimados buen día, favor podrían indicarme si es posible mediante un Procedimiento almacenado insertar datos en dos tablas diferentes , en el procedimiento recibo N cantidad de variables con datos desde un formulario esos datos son para dos tablas diferentes , donde ambas tablas deben compartir el IDSERVICIO que se genera con un SEQ

he probado de varias formas según manuales y ejemplos pero nada funciona,

create or replace PROCEDURE "SP_GRABAR_SERVICIO_ACCIDENTE"
( v_fechacreacion DATE,
v_estado NUMBER,
v_idcliente NUMBER,
v_nombrecliente VARCHAR2,
v_rutcliente VARCHAR2,
v_tiposervicio NUMBER,
v_fechaservicio DATE,
v_calleservicio NUMBER,
v_nro VARCHAR2,
v_asignado NUMBER,
v_comentario VARCHAR2,
v_contacto VARCHAR2,
v_telefonocontacto VARCHAR2,
v_idsolicitante NUMBER ,
v_telefonosolicitante VARCHAR2,
v_sucursal NUMBER,
v_usuario NUMBER,
v_tipoaccidente NUMBER,
v_empleado NUMBER
, OUT_GLOSA OUT VARCHAR2
, OUT_ESTADO OUT NUMBER
, OUT_ID_SALIDA OUT NUMBER) AS


BEGIN
OUT_ESTADO := 0;
OUT_GLOSA := 'PROCEDURE ejecutado exitosamente';
v_idservicio :=SEQ_ID_SERVICIO.NEXTVAL;

INSERT INTO SERVICIO ( idservicio, fechacreacion, estado, idcliente, nombrecliente, rutcliente, tiposervicio,fechaservicio, calleservicio, nro, asignado, comentario, contacto, telefonocontacto, idsolicitante, telefonosolicitante, sucursal, usuario)

VALUES (v_idservicio, v_fechacreacion, v_estado, v_idcliente, v_nombrecliente, v_rutcliente, v_tiposervicio, v_fechaservicio, v_calleservicio, v_nro, v_asignado, v_comentario, v_contacto, v_telefonocontacto, v_idsolicitante, v_telefonosolicitante, v_sucursal, v_usuario)

INSERT INTO ACCIDENTE (idaccidente, idservicio, tipoaccidente, empleado)
VALUES ( SEQ_ID_ACCIDENTE.NEXTVAL, v_idservicio, v_tipoaccidente, v_empleado)

/*RETURNING idaccidente INTO OUT_ID_SALIDA*/
EXCEPTION
WHEN OTHERS THEN
OUT_ESTADO := -1;
OUT_GLOSA := FN_GET_GLOSA_ERROR ;

END SP_GRABAR_SERVICIO_ACCIDENTE ;


Gracias
Homero
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

PROCEDIMIENTO INSERTA EN DOS TABLAS DIFERENTES

Publicado por anonimo (1 intervención) el 19/11/2021 23:35:12
Debes colocar un Commit; al final del primer insert porque sino no te funciona ya que el SEQ_ID_SERVICIO.NEXTVAL supongo es FK en la otra tabla

Pero que se puede efectuar varios insert un mismo procedure, claro que se puede seguro. Revisa bien que no haya alguna restricción o constraint (Check) de valores que pudieran influir
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