Cześć,
Napisałam następujące zapytanie, które działa poprawnie zwracając tabelę z poprawnymi wynikami:
SELECT * FROM ble.lampa_elektronowa
WHERE id_typ =
(SELECT id_typ FROM typ
WHERE typ = 'pierwszy')
Jednak w momencie, gdy umieszczam ten kod w storedprocedure, zwracana tabela jest pusta:
CREATE DEFINER=root
@localhost
PROCEDURE procedura_lampa
(
IN Akcja VARCHAR(25),
IN id_lampa INT,
INOUT nazwa_lampy VARCHAR(50),
IN id_pomiar INT,
IN punkt INT,
IN krzywa INT,
IN Ia FLOAT,
IN IsVariable FLOAT,
IN Vg FLOAT,
IN Va FLOAT,
IN Vs FLOAT,
IN Vf FLOAT,
IN id_typ INT,
IN TYP VARCHAR(45),
)
BEGIN
IF Akcja = 'LISTA' THEN
BEGIN
SELECT * FROM ble.lampa_elektronowa
END;
ELSEIF Akcja = 'DODAJ_DATA' THEN
BEGIN
INSERT INTO ble.data (data)
VALUES (NOW());
END;
ELSEIF Akcja = 'WYPELNIJCBIDLAMPY' THEN
BEGIN
SELECT * FROM ble.lampa_elektronowa
WHERE id_typ =
(SELECT id_typ FROM typ
WHERE typ = TYP);
END;
END IF;
END
wywołuję procedurę w następujący sposób:
call procedura_lampa('WYPELNIJCBIDLAMPY', @id_lampy, @nazwa_lampy, @id_pomiar, @punkt, @krzywa, @Ia, @IsVariable, @Vg, @Va, @VS, @Vf, @id_typ, 'pierwszy');
Gdy w zapytaniu nie ma warunku, zwracane tabele są zgodne z oczekiwaniami.
Proszę o pomoc,
Pozdrawiam