Corrección en procedimiento

Hola neosys, hace unos días me diste la idea de construir un procedimiento para facilitar la inserción de registros, tengo este procedimiento pero me dice que se crea con errores de compilación, ¿me harías el favor de revisarlo haber si le ves algo? Es este:
CREATE OR REPLACE PROCEDURE INSERTA_visual (v_Id_vis INT,
v_Fecha DATE,
v_equipo_esp CHAR,
v_placa CHAR,
v_recubrimiento CHAR,
v_estado_rec CHAR,
v_accesorios CHAR,
v_anclajes CHAR,
v_base CHAR,
v_puesta_tierra CHAR,
v_corrosion_externa CHAR,
v_escalera_acceso CHAR,
v_uniones_soldadas CHAR,
v_foto BLOB,
v_diagrama BLOB,
v_observaciones CHAR)
IS
--
l_bfile BFILE;
l_blob BLOB;
l_bfile2 BFILE;
l_blob2 BLOB;
--
BEGIN
--
INSERT INTO visual
(Id_vis, Fecha, equipo_esp, placa, recubrimiento, estado_rec, accesorios,
anclajes, base, puesta_tierra, corrosion_externa, escalera_acceso, uniones_soldadas, foto,
diagrama, observaciones)
VALUES
(v_Id_vis, to_date(v_Fecha), v_equipo_esp, v_placa, v_recubrimiento, v_estado_rec, v_accesorios,
v_anclajes, v_base, v_puesta_tierra, v_corrosion_externa, v_escalera_acceso, v_uniones_soldadas,
EMPTY_BLOB(), EMPTY_BLOB(), v_observaciones)
RETURN foto, diagrama INTO l_blob, l_blob2;
--
l_bfile := BFILENAME ('IMAGES', v_foto);
--
DBMS_LOB.fileopen(l_bfile, Dbms_Lob.File_Readonly);
DBMS_LOB.Loadfromfile(l_blob,l_bfile,DBMS_LOB.getlength(l_bfile));
DBMS_LOB.fileclose(l_bfile);
--
l_bfile2 := BFILENAME ('IMAGES', v_diagrama);
--
DBMS_LOB.fileopen(l_bfile2, Dbms_Lob.File_Readonly);
DBMS_LOB.Loadfromfile(l_blob2,l_bfile2,DBMS_LOB.getlength(l_bfile2));
DBMS_LOB.fileclose(l_bfile2);
--
COMMIT;
--
EXCEPTION
WHEN OTHERS THEN
DBMS_OUTPUT.PUT_LINE( SQLERRM ); -- Muestra un mensaje de error si se produce
--
ROLLBACK;
---
RAISE;
--
END INSERTA_visual;
/
La tabla es esta:
CREATE TABLE visual (
Id_vis INT not null primary key,
Fecha DATE,
equipo_esp char (25) not null,
placa char (25),
recubrimiento char (25),
estado_rec char (50),
accesorios char (50),
anclajes char (50),
base char (50),
puesta_tierra char (50),
corrosion_externa char (50),
escalera_acceso char (50),
uniones_soldadas char (50),
foto BLOB,
diagrama BLOB,
observaciones char(50),
CONSTRAINT ClaveExtvisualnombre_equ FOREIGN KEY (equipo_esp) REFERENCES equipos ON DELETE CASCADE);
CREATE SEQUENCE seq_visual
start WITH 1
increment BY 1
nomaxvalue;
CREATE OR REPLACE TRIGGER trig_visual
BEFORE INSERT ON visual
FOR EACH ROW
BEGIN
SELECT seq_visual.NEXTVAL INTO :new.Id_vis FROM dual;
END;
/
De antemano te agradezco mucho por tu tiempo.
Respuesta
1
Adison,
Me abres muchos 'hilos' ... Ya te contesté con la solución sobre el PROCEDIMIENTO que no compilaba.
Cierra este, por favor.
Y si tienes problemas -que no creo, porque te he dado la solución- mantén el anterior 'hilo' para realizar contra-preguntas. Pero creo que lo que te he contestado antes. EL PROCEDIMIENTO irá perfectamente y sin errores.
AH! Y perdón ... porque escribiendo deprisa he puesto 'habres0 cuando es 'abres' de ABRIR.
:-)

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas