powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Где ошибка в синтаксисе создания хранимой функции?
4 сообщений из 4, страница 1 из 1
Где ошибка в синтаксисе создания хранимой функции?
    #39104649
Здравствуйте!

Пытаюсь создать функцию:
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
DROP FUNCTION IF EXISTS bng347_get_product_url;
DELIMITER //

CREATE FUNCTION bng347_get_product_url(pid INT(1))
RETURNS TEXT
BEGIN
	DECLARE out TEXT;
	DECLARE cat_id INT(1);
	DECLARE is_there_anybody TINYINT(1);
	DECLARE cat_slug VARCHAR(255);

	SET cat_id = (SELECT virtuemart_category_id FROM ytgb1_virtuemart_product_categories WHERE virtuemart_product_id = pid and ordering = 0 LIMIT 1)	
	IF cat_id > 0 
		SET is_there_anybody = 1;
	END IF;
	SET out = CONCAT((SELECT slug FROM ytgb1_virtuemart_products_ru_ru WHERE virtuemart_product_id = pid), "-detail");
	WHILE cat_id > 0 DO
		SELECT cru.virtuemart_category_id, cru.slug INTO cat_id, cat_slug
		FROM ytgb1_virtuemart_category_categories cc 
		JOIN ytgb1_virtuemart_categories_ru_ru cru ON cru.virtuemart_category_id = cc.category_parent_id
		WHERE category_child_id = cat_id;
		SET out = CONCAT("/", cat_slug, "/", out);
	END WHILE;
	RETURN out;
END//
DELIMITER ;


Возвращается сообщение об ошибке:
автор#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'out TEXT;
DECLARE cat_id INT(1);
DECLARE is_there_anybody TINYINT(1);
DECLARE' at line 4

Скажите, пожалуйста, где я ошибаюсь

желаю Вам счастья
...
Рейтинг: 0 / 0
Где ошибка в синтаксисе создания хранимой функции?
    #39104677
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
out - зарезервированное слово.
...
Рейтинг: 0 / 0
Где ошибка в синтаксисе создания хранимой функции?
    #39105386
miksoftout - зарезервированное слово.
спасибо. я своим вечным while подвесил mysql сервер :) как в этом случае правильно стопорить выполнение функции?
...
Рейтинг: 0 / 0
Где ошибка в синтаксисе создания хранимой функции?
    #39105393
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Борис Гаркуня своим вечным while подвесил mysql сервер :) как в этом случае правильно стопорить выполнение функции?я бы попробовал убить всю сессию.
...
Рейтинг: 0 / 0
4 сообщений из 4, страница 1 из 1
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Где ошибка в синтаксисе создания хранимой функции?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]