Cita:
Iniciado por gnzsoloyo
Desglosando:
1) No uses caracteres extendidos como la "ñ". Pueden tener resultados inesperados si el parser no los interpreta bien.
2) NULL no es un dato, es un estado en todo caso o un puntero a la nada, que es como se lo define, como no es un dato no pueden usarse operadores lógicos contra él. Para saber si algo es o no NULL se usa IFNULL() o bien IS NULL.
3) Para usar COMMIT o ROLLBACK, primero debes haber iniciado la transacción, cosa que no haces en ninguna parte del código.
4) Cuando cambias los delimitadores, el bloque BEGIN/END termina con los nuevos delimitadores, no con los viejos.
Fuera de eso, no deberías tener problemas para compilarlo.
1) ejecuto el Select, y no tengo problema con las Ñ a menos que dentro del PROCEDURE tenga problema pero lo modificare.
2) no lo conocia lo intentare ocupar.
3)si los saco funcionaria iwal?
lo ejecuto y me da resultado NULL, por eso hacia la consutla en el IF para saber
si esta registrando o asignando un NULL, pero en teoria funcionaria asi.
la linea de codigo SET remarcada no se si esta bn osea io kreo q esta bn
pero parece que no asigna un resultado en teoria me deberia dar el "1"
y al consultar el IF deberia ser MAYOR.
Código:
//
CREATE PROCEDURE Proc_ConsId (In sen varchar(20), In prog varchar(20),OUT msn varchar(30))
BEGIN
DECLARE b INTEGER DEFAULT 0 ;
SET b=(select idbloqueos from bloqueos where señal=sen AND programa=prog);
IF (b > 0 ) THEN
SET msn=('FUNCIONO');
ELSE
SET msn=('NO FUNCO');
END IF;
END;
//
CALL Proc_ConsId('A','B',@msn);
select @msn;