Ver Mensaje Individual
  #1 (permalink)  
Antiguo 16/09/2011, 20:22
oscarbt
 
Fecha de Ingreso: abril-2009
Ubicación: Colombia
Mensajes: 949
Antigüedad: 15 años, 7 meses
Puntos: 27
dos consultas en un procedimiento

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 original
  1. DECLARE
  2. cod_art CHAR(10) :='&Codigo_Articulo_a_Eliminar';
  3. BEGIN
  4.  validarexisart(cod_art);
  5. END;
  6. /

Código SQL:
Ver original
  1. CREATE OR REPLACE PROCEDURE validarexisart(cod_art CHAR )
  2. IS
  3. res BOOLEAN;
  4. res2 BOOLEAN;
  5. noexiste exception;
  6.  
  7. BEGIN
  8.  verificararticulo(cod_art,res, res2);
  9.  
  10. IF res2 = TRUE THEN
  11.    raise noexiste;
  12.  
  13. ELSE
  14.    
  15.   dbms_output. put_line(' se eliminar el articulo');
  16.  
  17. END IF;
  18. exception
  19. WHEN noexiste THEN
  20.    dbms_output. put_line('El articulo no existe en el sistema');
  21.  
  22. END

y las consultas las hago en verificararticulo:


Código SQL:
Ver original
  1. CREATE OR REPLACE PROCEDURE verificararticulo(arti IN CHAR, a OUT BOOLEAN, b OUT BOOLEAN  )
  2.  IS
  3.  v_articulo articulo%rowtype;
  4.  
  5.  BEGIN
  6.  
  7.  SELECT * INTO v_articulo
  8.  FROM articulo
  9.  WHERE cod_art =arti;
  10.  a:= TRUE;
  11. exception
  12. WHEN No_data_found THEN
  13. a:=FALSE;
  14.  
  15.  SELECT * INTO v_articulo
  16.  FROM detalle_compra
  17.  WHERE cod_art =arti;
  18.  b:= TRUE;
  19. exception
  20. WHEN No_data_found THEN
  21. b:=FALSE;
  22.  
  23.  END verificararticulo;
  24. /
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?