Buenas a todos,

En el e-mail que envie sobre el problema que tenía con la modificación del 
campo serial cuando daba un error, he modificado la función pero sale un 
mensaje de error pero el indice del campo serial lo modifica correctamente, 
pero el error que sale es el siguiente: la consulta no tiene un destino para 
los datos de resultado. Si se quiere descartar los resultados de una select, 
utilice PERFORM y me indica la línea donde está ubicada la consulta que es un  
SELECT last_value INTO ultimo FROM salida_salcod_seq; Como ya he utilizado el 
SELECT INTO pero desde una tabla que controlaba un contador y no me dá 
problemas tendré que obtar por crear una tabla que lleve el contador por no 
utilizar los OID's.

Saludos,
Joac

    conta entrada.entsto%TYPE;
    ultimo integer;
BEGIN

    -- Modificar el campo entrada Stock con las salidas que vayan produciendose.

    Select entsto into conta from entrada where entpar=new.entpar;

    IF conta = 0 THEN
        SELECT last_value INTO ultimo FROM salida_salcod_seq;
        SELECT setval('salida_salcod_seq',ultimo-1);
        RAISE EXCEPTION 'No se puede registrar la salida ya que no hay stock';
    END IF;

    IF new.salcan > conta THEN
        SELECT last_value into ultimo FROM salida_salcod_seq;
        SELECT setval('salida_salcod_seq',ultimo-1);
        RAISE EXCEPTION 'No se puede registrar la salida ya que la cantidad 
selecciona es mayor a la que hay en stock';
    ELSE
        conta := conta - new.salcan;
        update entrada SET entsto = conta where entpar=new.entpar;
    END IF;
    
    
    RETURN NEW;

END;

                                          
_________________________________________________________________
Escucha a quienes ya han probado Windows 7 ¡Hazlo aquí!
http://www.sietesunpueblodeexpertos.com/index_windows7.html

Responder a