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


0