简体   繁体   English

以Table_name作为输入的函数,并在Oracle中返回一个数字

[英]Function with Table_name as input and returns a number in Oracle

I have a function that takes table_name as input and returns a number. 我有一个函数,将table_name作为输入并返回一个数字。 The function gets compiled properly but for some reason when I try test the function it throws error - missing keyword. 该函数已正确编译,但是由于某些原因,当我尝试测试该函数时,它将引发错误-缺少关键字。

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;

This is how I am testing it Select TEST_FUNCTION ('FDR_REP') from dual; 这就是我测试它Select TEST_FUNCTION ('FDR_REP') from dual;

The syntax for execute immediate is different for an into clause try 对于into子句try,立即执行的语法是不同的

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;

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM