Это моя функция:
query = "CREATE FUNCTION CheckSex(personID INT, G CHAR) " +
"RETURNS BIT " +
"BEGIN " +
"DECLARE Flag BIT; " +
"SET Flag = 1; " +
"If (G NOT IN (SELECT Sex FROM PERSONS WHERE ID = personID)) " +
"THEN SET Flag = 0; " +
"RETURN Flag; " +
"END";
pState = conn.prepareStatement(query);
pState.executeUpdate();
Это код ошибки: проверьте руководство, соответствующее вашей MySQL версии сервера, чтобы найти правильный синтаксис рядом с '' в строке 1
Я попытался ввести его в командную строку mysql вручную и получил сообщение об ошибке после DECLARE Flag BIT ;, также я попытался изменить разделитель, который дал ошибку.
Я переключился на сейчас онлайн-компилятор, и эта функция отлично работает в MySql 2014 express, записанном следующим образом
CREATE FUNCTION CheckSex(@personID AS INT, @G as CHAR)
RETURNS BIT
AS
BEGIN
DECLARE @Flag BIT = 1
If (@G NOT IN (SELECT Sex FROM PERSONS WHERE ID = @personID))
SET @Flag = 0
RETURN @FLAG
END;
Спасибо за любые отзывы.