Ich habe ein Problem mit der Prozedur in SQL.SQL-Prozedur gibt leere Tabelle trotz funktionierender Abfrage zurück
in SQL Mein Code, der so arbeitet, ist:
SELECT * FROM ble.lampa_elektronowa
WHERE id_typ =
(SELECT id_typ FROM typ
WHERE typ = 'pierwszy')
Und das Ergebnis dieser Abfrage ist
Wenn ich versuche, das Verfahren mit diesem Code zu schreiben (IF Akcja = 'DODAJ_DATA' THEN):
CREATE DEFINER=`root`@`localhost` PROCEDURE `procedura_lampa`(
IN Akcja VARCHAR(25),
IN id_lampa INT,
IN 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),
IN zapas15 INT,
IN zapas16 INT,
IN zapas17 INT,
IN zapas18 INT,
IN zapas19 INT,
OUT Komunikat VARCHAR(200)
)
BEGIN
IF Akcja = 'LISTA' THEN
BEGIN
SELECT * FROM ble.lampa_elektronowa;
SET @Komunikat = 'Wyświetlono';
SET Komunikat = @Komunikat;
END;
END IF;
IF Akcja = 'DODAJ_DATA' THEN
BEGIN
INSERT INTO ble.data (data)
VALUES (NOW());
END;
END IF;
IF Akcja = 'WYPELNIJCBIDLAMPY' THEN
BEGIN
SELECT nazwa_lampy FROM ble.lampa_elektronowa
WHERE id_typ =
(SELECT id_typ FROM typ
WHERE typ = TYP);
END;
END IF;
END
und ich bin tryin g, um diese Prozedur unter Verwendung dieses Codes aufzurufen:
call procedura_lampa('WYPELNIJCBIDLAMPY', @id_lampy, @nazwa_lampy, @id_pomiar, @punkt, @krzywa, @Ia, @IsVariable, @Vg, @Va, @Vs, @Vf, @id_typ, 'pierwszy', @zapas15, @zapas16, @zapas17, @zapas18, @zapas19, @Komunikat) ;
, das Ergebnis der Abfrage ist leer. Die Tabelle "typ" sieht wie folgt aus:
.
Warum funktioniert es nicht? Dies sollte einige Ergebnisse zurückgeben.
Bearbeiten Sie Ihre Frage und (1) Zeigen Sie, wie Sie die gespeicherten Prozeduren aufrufen; (2) Erklären Sie, was nicht funktioniert. –
Bitte fixiere deinen Fragetitel. Mach es nützlich. –