【问题标题】:Can I return a function in PL/SQL?我可以在 PL/SQL 中返回一个函数吗?
【发布时间】:2019-11-30 01:23:05
【问题描述】:

我试图在 PL/SQL 中返回一个函数。我可以这样做吗?

FUNCTION my_func () RETURN VARCHAR2 AS
 BEGIN
  RETURN 'any other function'
 END;

【问题讨论】:

  • 我建议你返回函数的结果而不是返回函数本身
  • 嗨,没有意义......也许你想返回另一个函数的结果,而不是一个函数。
  • 你可以返回一个对象,这个对象可以有方法。你是这个意思吗?您正在寻找的更多细节会有所帮助。
  • 你看过this问题或this one吗?

标签: oracle stored-procedures plsql stored-functions


【解决方案1】:

函数必须返回expression

表达式是一个或多个值、运算符和 SQL 计算结果为值的函数的组合

你可以回Function expression

您可以使用任何内置的 SQL 函数或用户定义的函数作为表达式。一些有效的内置函数表达式是:

LENGTH('BLAKE') 
ROUND(1234.567*43) 
SYSDATE 

【讨论】:

    【解决方案2】:

    --创建你的函数:

    create or replace function my_func return VARCHAR2 is
    begin
      return 'any other function';
    end my_func;
    

    --测试函数:

    declare 
      v_return varchar2(100);
    begin
      v_return:=my_func;
      dbms_output.put_line('v_return: '||v_return);
    end;
    

    v_return ==> 任何其他函数

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-05-06
      • 2017-08-24
      • 1970-01-01
      • 2018-04-10
      • 2011-02-26
      • 2011-01-15
      相关资源
      最近更新 更多