我已经和这个问题纠缠了一段时间了。我想做一个带参数的函数。这个函数应该用用户提交的参数来改变一个选择语句,然后返回/运行选择语句。
函数:
create or replace FUNCTION F_GET_TABLE(column1_in varchar2, column2_in varchar2)
return query
is
base_query constant varchar2(5000 char) :=
'select column1, column2 from CustomersTable;';
begin
replace(replace(base_query, 'column1', column2_in),'column2', column2_in );
queryToReturn query := base_query;
return queryToReturn;
end F_GET_TABLE;
在我的脑海中,最终结果应该是这样调用函数:
select F_GET_TABLE('f_name','e_mail') from dual;
如果我将select-statement写成以下形式,应该会得到相同的结果:
select f_name, e_mail from CustomersTable;
所以我尝试了不同的方法来让函数返回我所描述的查询。然而,我所做的最好的事情是返回一个带有select语句的varchar 2-然而,我必须从select块的开始和结束处删除“”,然后手动运行它。我在互联网上搜索时似乎找不到任何问题的答案,请在这里帮助我!
1条答案
按热度按时间rqcrx0a61#
具体操作如下:
如果要返回 result,则返回引用游标:
测试: