尽管工作查询

时间:2016-04-23 19:58:57

标签: mysql sql procedure

我在SQL中遇到了一个问题。

我在SQL中的代码就是这样:

 SELECT * FROM ble.lampa_elektronowa
 WHERE id_typ =
 (SELECT id_typ FROM typ
 WHERE typ = 'pierwszy')

此查询的结果是

here

当我尝试使用此代码编写程序时(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"表看起来像

that

为什么它不起作用? 这应该会返回一些结果。

1 个答案:

答案 0 :(得分:0)

您的程序中有两个分号。一个在子查询之后,另一个在END之后。删除第一个肯定。如果您仍有错误,请告诉我们它的内容是什么。