我不能将mysql函数称为视图列

时间:2016-06-18 08:53:32

标签: mysql function view

我有一个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'); 

0 个答案:

没有答案