Не могу ли я указать функцию mysql как столбец представления

У меня есть функция mysql следующим образом.

DELIMITER //
CREATE FUNCTION PROGRAM_API_Get_Val(
        param_     VARCHAR(15)) RETURNS VARCHAR(100)
BEGIN

    DECLARE val_ VARCHAR(100);

    DECLARE get_val_ CURSOR FOR
        SELECT param_name
            FROM tab_1
            WHERE param_id = param_;    

    OPEN get_val_ ;
    IF(get_val_.rowcount>0) THEN
        FETCH get_val_ INTO val_;
        CLOSE get_val_;
        RETURN val_;
    END IF;
    CLOSE get_val_;
    RETURN NULL;

END//

Теперь я хочу создать следующее представление mysql, используя указанную выше функцию.

CREATE OR REPLACE VIEW application_list_view AS
SELECT   child_param_id  id,PROGRAM_API_Get_Val(param_id)     view_col  FROM tab_2;

обе эти функции выполняются успешно. Но когда я пытаюсь выполнить оператор select для этого представления, я получаю следующую ошибку.

Код ошибки: 1109. Неизвестная таблица 'get_name_' в списке полей 0,000 сек.

Это для создания таблицы для тестирования,

create table tab_1(param_id VARCHAR(100),param_name VARCHAR(100));
create table tab_2(child_param_id VARCHAR(100),child_param_name VARCHAR(100),param_id VARCHAR(100));

Это для вставки значений для значения tab_1

insert into tab_1 values ('1','pro_1'); 
insert into tab_1 values ('2','pro_2'); 

insert into tab_2 values ('1','pro_1','1'); 
insert into tab_2 values ('2','pro_2','1'); 

person Dinidu Hewage    schedule 18.06.2016    source источник
comment
не нужно закрывать курсор, если количество строк равно нулю?   -  person Mahdy Aslamy    schedule 18.06.2016
comment
Да, я должен это сделать   -  person Dinidu Hewage    schedule 18.06.2016
comment
Вы можете уйти от написания мусора в представлении и преуспеть в создании. Запуск — это отдельная тема.   -  person Drew    schedule 18.06.2016
comment
См. http://stackoverflow.com/a/37895784/1316440.   -  person wchiquito    schedule 18.06.2016