Oracle 如何在函数中使用函数

Oracle 如何在函数中使用函数,oracle,plsql,Oracle,Plsql,现在,为了完全透明,这是家庭作业。第一部分是创建一个存储函数来计算商品的折扣价格。它接受项目ID的一个参数,并返回折扣价格的值。函数名为折扣价格。这是我做的,效果很好 下一部分是:“5.编写一个脚本,创建并调用名为item_total的存储函数,该函数用于计算Order_Items表中项目的总金额(折扣价格乘以数量)。为此,此函数应接受项目ID的一个参数,它应使用在练习2中创建的折扣价格函数,并应返回该项目的总值。” 我的问题是,如何将一个函数的值传递给另一个函数?我只需要基本的语法。我的课本上

现在,为了完全透明,这是家庭作业。第一部分是创建一个存储函数来计算商品的折扣价格。它接受项目ID的一个参数,并返回折扣价格的值。函数名为折扣价格。这是我做的,效果很好

下一部分是:“5.编写一个脚本,创建并调用名为item_total的存储函数,该函数用于计算Order_Items表中项目的总金额(折扣价格乘以数量)。为此,此函数应接受项目ID的一个参数,它应使用在练习2中创建的折扣价格函数,并应返回该项目的总值。”

我的问题是,如何将一个函数的值传递给另一个函数?我只需要基本的语法。我的课本上没有例子,我在任何地方都找不到明确的答案

相信有你想要的例子。 基本上,您可以像通常在sql plus或sql developer中那样调用它

例如:

returl\u val:=SUBSTR(string\u in,4,1)

相信有你正在寻找的例子。 基本上,您可以像通常在sql plus或sql developer中那样调用它

例如:

returl\u val:=SUBSTR(string\u in,4,1)


您可以在函数中调用函数,方法与从语句或查询调用函数完全相同;例如:

create function innerFunction(a number) return number is
begin
    return a * 2;
end;

create function outerFunction(a number) return number is
begin
    return innerFunction(a) * 3;
end;

create function calledFunction(a number) return number is
    n number;
begin
    n := outerFunction(a) * 5;
    return n;
end;

SQL> select calledFunction(1) from dual;

CALLEDFUNCTION(1)
-----------------
               30

SQL> select calledFunction(calledFunction(calledFunction(1))) from dual;

CALLEDFUNCTION(CALLEDFUNCTION(CALLEDFUNCTION(1)))
-------------------------------------------------
                                            27000


SQL> declare
  2  x number;
  3  begin
  4  x := calledFunction(1);
  5  dbms_output.put_line(x);
  6  end;
  7  /
30

您可以在函数中调用函数,方法与从语句或查询调用函数完全相同;例如:

create function innerFunction(a number) return number is
begin
    return a * 2;
end;

create function outerFunction(a number) return number is
begin
    return innerFunction(a) * 3;
end;

create function calledFunction(a number) return number is
    n number;
begin
    n := outerFunction(a) * 5;
    return n;
end;

SQL> select calledFunction(1) from dual;

CALLEDFUNCTION(1)
-----------------
               30

SQL> select calledFunction(calledFunction(calledFunction(1))) from dual;

CALLEDFUNCTION(CALLEDFUNCTION(CALLEDFUNCTION(1)))
-------------------------------------------------
                                            27000


SQL> declare
  2  x number;
  3  begin
  4  x := calledFunction(1);
  5  dbms_output.put_line(x);
  6  end;
  7  /
30

这是什么语言,sql?它在oracle pl/sql中这是什么语言,sql?它在oracle pl/sql中