#mysql
#mysql
Вопрос:
Я хочу написать функцию, которая возвращает код плана, когда я даю название плана ввода, но моя функция не работает, пожалуйста, помогите мне и исправьте мой код. Пожалуйста, найдите прилагаемое вложение ошибки. Я буду вам благодарен.введите описание изображения здесь
Plan_code Plan_title
1 Break First
2 Lunch
3 Dinner
id Plan_title Employee name
1 Break First ABC
2 Lunch DCF
3 Dinner GHI
DELIMITER //
CREATE FUNCTION get_plan_tile_code(Actvi_SubPln_Title VARCHAR)RETURNS INT(99)
BEGIN
DECLARE ATY_CODE INT(99) DEFAULT"";
SELECT plan_id INTO ATY_CODE
FROM tbl_plan_scata
WHERE plan_sub_title = Actvi_SubPln_Title;
RETURN ATY_CODE;
END //;
DELIMITER ;
Комментарии:
1. Я не совсем понимаю, что вы пытаетесь сделать. Из вашего описания кажется, что вы просто пытаетесь выполнить простой ВЫБОР ОТКУДА, это правда? Если да, не уверен, почему вы создаете функцию для этого.
2. 1) Длина 99 неверна для целочисленного типа данных. Удалите спецификацию длины вообще. 2) Пустая строка — неправильное значение по умолчанию для целочисленной переменной. Установите, например, ноль или (лучше всего) удалите его вообще. 3) Ваш запрос может возвращать более одной строки, тогда как переменная может принимать только одно значение. Отредактируйте запрос. 4) VARCHAR нуждается в спецификации длины, добавьте ее.