SQLのプロシージャに問題があります。SQLプロシージャは、動作中の問合せにもかかわらず空の表を戻します。
働いているSQLでの私のコードは、そのようなものです:
SELECT * FROM ble.lampa_elektronowa
WHERE id_typ =
(SELECT id_typ FROM typ
WHERE typ = 'pierwszy')
そして、このクエリの結果は
私はこのコードを使用してプロシージャを記述しようとしています(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
と私はtryinですg:このコードを使用してこのプロシージャを呼び出します。
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) ;
この問合せの結果は空です。 "typ"テーブルは、
のようになります。
なぜ機能しないのですか? これはいくつかの結果を返します。
質問を編集し、(1)ストアドプロシージャの呼び出し方法を示します。 (2)働くことができないことを説明する。 –
あなたの質問のタイトルを修正してください。それを便利にしてください。 –