以 Table_name 作为输入并在 Oracle 中返回一个数字的函数
Posted
技术标签:
【中文标题】以 Table_name 作为输入并在 Oracle 中返回一个数字的函数【英文标题】:Function with Table_name as input and returns a number in Oracle 【发布时间】:2015-10-26 18:58:01 【问题描述】:我有一个函数,它以 table_name 作为输入并返回一个数字。 该函数已正确编译,但由于某种原因,当我尝试测试该函数时它会抛出错误 - 缺少关键字。
CREATE OR replace FUNCTION TEST_FUNCTION (name_table IN VARCHAR2) RETURN NUMBER
IS
rday NUMBER;
BEGIN
execute immediate
'select day_i into rday
FROM ' || name_table || '
WHERE day_i = 1 and rownum = 1';
return rday;
END TEST_FUNCTION;
这就是我测试它的方式Select TEST_FUNCTION ('FDR_REP') from dual;
【问题讨论】:
【参考方案1】:对于 into 子句,execute immediate 的语法是不同的 试试
CREATE OR replace FUNCTION TEST_FUNCTION (name_table IN VARCHAR2) RETURN NUMBER
IS
rday NUMBER;
BEGIN
execute immediate 'select day_i
FROM ' || name_table || '
WHERE day_i = 1 and rownum = 1' into rday;
return rday;
END TEST_FUNCTION;
【讨论】:
以上是关于以 Table_name 作为输入并在 Oracle 中返回一个数字的函数的主要内容,如果未能解决你的问题,请参考以下文章