Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Где ошибка в синтаксисе создания хранимой функции? / 4 сообщений из 4, страница 1 из 1
16.11.2015, 16:21:36
    #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
16.11.2015, 16:36:00
    #39104677
miksoft
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Где ошибка в синтаксисе создания хранимой функции?
out - зарезервированное слово.
...
Рейтинг: 0 / 0
17.11.2015, 11:59:07
    #39105386
Где ошибка в синтаксисе создания хранимой функции?
miksoftout - зарезервированное слово.
спасибо. я своим вечным while подвесил mysql сервер :) как в этом случае правильно стопорить выполнение функции?
...
Рейтинг: 0 / 0
17.11.2015, 12:03:16
    #39105393
miksoft
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Где ошибка в синтаксисе создания хранимой функции?
Борис Гаркуня своим вечным while подвесил mysql сервер :) как в этом случае правильно стопорить выполнение функции?я бы попробовал убить всю сессию.
...
Рейтинг: 0 / 0
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Где ошибка в синтаксисе создания хранимой функции? / 4 сообщений из 4, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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