Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Где ошибка в коде создания функции? / 9 сообщений из 9, страница 1 из 1
20.11.2015, 17:35:59
    #39109323
Где ошибка в коде создания функции?
Здравствуйте!

Есть такой простой код создания хранимой функции:
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
DROP FUNCTION IF EXISTS bng347_get_simple_price;
DELIMITER //
CREATE FUNCTION bng347_get_simple_price(price decimal(15,6))
RETURNS INT(1)
BEGIN
	RETURN CAST(price as INT(1));
END//
DELIMITER ;


Возвращает ошибку. Скажите, пожалуйста, почему?

желаю Вам счастья
...
Рейтинг: 0 / 0
20.11.2015, 17:36:59
    #39109325
miksoft
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Где ошибка в коде создания функции?
Борис Гаркун,

Текст ошибки?
...
Рейтинг: 0 / 0
20.11.2015, 17:38:49
    #39109326
Где ошибка в коде создания функции?
#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 'INT(1));
END' at line 4
MYSQL 5.5
...
Рейтинг: 0 / 0
20.11.2015, 17:41:55
    #39109330
miksoft
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Где ошибка в коде создания функции?
Борис Гаркун,

В функции CAST() типы обозначаются иначе. Среди них нет INT(1).
...
Рейтинг: 0 / 0
20.11.2015, 17:43:26
    #39109332
miksoft
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Где ошибка в коде создания функции?
И, насколько я помню, нет необходимости явно кастовать возвращаемое значение. Его тип и так уже задан в заголовке функции.
...
Рейтинг: 0 / 0
20.11.2015, 17:45:51
    #39109335
Где ошибка в коде создания функции?
Спасибо!
Вот так работает
DROP FUNCTION IF EXISTS bng347_get_simple_price;
DELIMITER //
CREATE FUNCTION bng347_get_simple_price(price decimal(15,6))
RETURNS INTEGER
BEGIN
RETURN price;
END//
DELIMITER ;
...
Рейтинг: 0 / 0
20.11.2015, 18:30:53
    #39109390
MasterZiv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Где ошибка в коде создания функции?
miksoftБорис Гаркун,

В функции CAST() типы обозначаются иначе. Среди них нет INT(1).

На самом деле эти скобочки с числами вообще не нужно использовать возле интегральных типов данных типа INT.
Они не нужны от слова "совсем". Они ничего не меняют.
...
Рейтинг: 0 / 0
21.11.2015, 09:26:51
    #39109627
Где ошибка в коде создания функции?
Спасибо.

Мне осталось не понятным только, почему ни CAST, ни CONVERT я так и не смог использовать в теле хранимой функции. Ошибся в синтаксисе или они не допустимы в хранимой функции?
...
Рейтинг: 0 / 0
23.11.2015, 04:56:25
    #39110545
MasterZiv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Где ошибка в коде создания функции?
Борис Гаркун,
|ошибся в синт., ибо можно...
...
Рейтинг: 0 / 0
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Где ошибка в коде создания функции? / 9 сообщений из 9, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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