SQLinfo.ru - Все о MySQL

Форум пользователей MySQL

Задавайте вопросы, мы ответим

Вы не зашли.

#1 21.05.2011 13:25:31

demchukv
Участник
Зарегистрирован: 21.05.2011
Сообщений: 3

Использование переменных для имени поля таблицы в хранимых функциях

Здравствуйте!
К сожалению не имею опыта написания хранимых функций MySQL.
Возник следующий вопрос: возможно ли каким-то образом в хранимой функции MySQL в запросе использовать имя столбца в виде переменной, которая передается функции?
Имеется таблица с курсами валют. Столбцы таблицы - это курсы валютных пар. Соответственно в функции передается дата и имя столбца с которого необходимо получить данные.
В процедурах этот вопрос решается таким образом:


SET @q := concat('SELECT ',fieldname,' FROM su_val_course where vc_date="',vcdate,'"');
PREPARE stmt FROM @q;
EXECUTE stmt;

По некоторым причинам использование процедур в данной ситуации не подходит. Нужна именно функция. Но в функциях формирование динамических запросов запрещено. Нет ли возможности обойти это? Или вопрос не решаем?
Может кто-то уже сталкивался с таким вопросом. Буду благодарен за помощь.

Неактивен

 

#2 21.05.2011 19:31:18

paulus
Администратор
MySQL Authorized Developer and DBA
Зарегистрирован: 22.01.2007
Сообщений: 6757

Re: Использование переменных для имени поля таблицы в хранимых функциях

Нет, так сделать не получится. С другой стороны, как правило, это всё можно
сделать в клиентском приложении.

Неактивен

 

#3 21.05.2011 20:46:44

demchukv
Участник
Зарегистрирован: 21.05.2011
Сообщений: 3

Re: Использование переменных для имени поля таблицы в хранимых функциях

Спасибо за ответ.
Так и думал, но была небольшая надежда... smile

Неактивен

 

#4 25.05.2011 11:59:44

retro-kharkov
Участник
Зарегистрирован: 18.04.2011
Сообщений: 10

Re: Использование переменных для имени поля таблицы в хранимых функциях

Как вариант вызов динамической хранимой процедуры с функции?

Неактивен

 

#5 25.05.2011 12:01:35

demchukv
Участник
Зарегистрирован: 21.05.2011
Сообщений: 3

Re: Использование переменных для имени поля таблицы в хранимых функциях

Если не ошибаюсь, то вызов процедур из функций тоже запрещен.

Неактивен

 

#6 25.05.2011 12:06:01

retro-kharkov
Участник
Зарегистрирован: 18.04.2011
Сообщений: 10

Re: Использование переменных для имени поля таблицы в хранимых функциях

Извените сплашал в мануале написано низя smile

Неактивен

 

Board footer

Работает на PunBB
© Copyright 2002–2008 Rickard Andersson