SQLinfo.ru - Все о MySQL

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

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

Вы не зашли.

#1 23.12.2010 15:13:30

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

Возвращаемые значения пользовательских функций

Здравствуйте!
Помогите разобраться, при создании функции "CREATE FUNCTION my_funct()"  тип возвращаемого результата может быть только скалярного типа или можно получить результат типа TABLE??  К примеру что бы можно было использовать "INSERT INTO x(y) SELECT  my_funct();" Процедуры в предложении SELECT на сколько я понимаю использовать нельзя. Не большой пример был бы кстати!

Неактивен

 

#2 23.12.2010 16:55:23

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

Re: Возвращаемые значения пользовательских функций

Нет, так сделать нельзя: функция возвращает только скалярные данные.

Более того, из процедуры Вы тоже так сделать не сможете. Но сможете
сделать соответствующие изменения прямо в теле процедуры (т.е. делать
сразу INSERT SELECT вместо простого SELECT).

Неактивен

 

#3 23.12.2010 17:56:06

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

Re: Возвращаемые значения пользовательских функций

Спасибо!
А в качестве входящего параметра для процедуры столбец таблицы или таблицу передать тоже нельзя??
К примеру следующий код :

    ->create procedure my_proc1(in y varchar(20))
    -> BEGIN
    -> insert into test(y) select z.x from z;
    -> END

при вызове: "CALL my_proc1(test_int)"
выдает следующую ошибку : "ERROR 1054 (42S22): Unknown column 'test_int' in 'field list' "

Неактивен

 

#4 23.12.2010 18:10:42

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

Re: Возвращаемые значения пользовательских функций

Нет, так не получится. Можете передать название строкой, а внутри процедуры
обработать через подготовленные выражения (PREPARED STATEMENTS). Но опыт
показывает, что обобщенное программирование на SQL ни к чему хорошему не
приводит smile

Неактивен

 

#5 23.12.2010 18:45:04

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

Re: Возвращаемые значения пользовательских функций

На данный момент конкретных задач не стоит, просто разбираюсь с функциональностью mysql. Но в любом случае спасибо за ответы!

Неактивен

 

Board footer

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