Buenas a todos...estoy haciendo un procedimiento para eliminar un articulo, debo validar los siguiente:
1 que el articulo a eliminar si exista
2. que el articulo no este en un detalle de compra
Tengo el siguiente procedimiento:
esta por linea de comando
Código SQL:
Ver originalDECLARE
cod_art CHAR(10) :='&Codigo_Articulo_a_Eliminar';
BEGIN
validarexisart(cod_art);
END;
/
Código SQL:
Ver originalCREATE OR REPLACE PROCEDURE validarexisart(cod_art CHAR )
IS
res BOOLEAN;
res2 BOOLEAN;
noexiste exception;
BEGIN
verificararticulo(cod_art,res, res2);
IF res2 = TRUE THEN
raise noexiste;
ELSE
dbms_output. put_line(' se eliminar el articulo');
END IF;
exception
WHEN noexiste THEN
dbms_output. put_line('El articulo no existe en el sistema');
END
y las consultas las hago en verificararticulo:
Código SQL:
Ver originalCREATE OR REPLACE PROCEDURE verificararticulo(arti IN CHAR, a OUT BOOLEAN, b OUT BOOLEAN )
IS
v_articulo articulo%rowtype;
BEGIN
SELECT * INTO v_articulo
FROM articulo
WHERE cod_art =arti;
a:= TRUE;
exception
WHEN No_data_found THEN
a:=FALSE;
SELECT * INTO v_articulo
FROM detalle_compra
WHERE cod_art =arti;
b:= TRUE;
exception
WHEN No_data_found THEN
b:=FALSE;
END verificararticulo;
/
es decir res me recibe lo que devuelve a y res2 lo que devuelva
Pero tengo errores de compilación en el procedimiento verificararticulo
Como seria entonces la sintaxis para ese procedimiento o de que forma podria hacer las dos validaciones?