我在SQL中遇到了一个问题。
我在SQL中的代码就是这样:
SELECT * FROM ble.lampa_elektronowa
WHERE id_typ =
(SELECT id_typ FROM typ
WHERE typ = 'pierwszy')
此查询的结果是
当我尝试使用此代码编写程序时(IF Akcja =' DODAJ_DATA'那么):
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
我尝试使用此代码调用此过程:
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"表看起来像
为什么它不起作用? 这应该会返回一些结果。
答案 0 :(得分:0)
您的程序中有两个分号。一个在子查询之后,另一个在END之后。删除第一个肯定。如果您仍有错误,请告诉我们它的内容是什么。