Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » Oracle »

dos consultas en un procedimiento

Estas en el tema de dos consultas en un procedimiento en el foro de Oracle en Foros del Web. 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 ...
  #1 (permalink)  
Antiguo 16/09/2011, 20:22
 
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?
  #2 (permalink)  
Antiguo 20/09/2011, 09:21
 
Fecha de Ingreso: junio-2007
Mensajes: 891
Antigüedad: 17 años, 5 meses
Puntos: 43
Respuesta: dos consultas en un procedimiento

Despues de intentar compilar el prcedure teclea show error y fijate en los errores que te muestra.

La EXCEPTION debe de ir al final del bloque pl, por lo que cada SELECT ... INTO debe de ir dentro de un BEGIN-EXCEPTION-END

Etiquetas: procedimiento
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 13:14.