2016-11-07 112 views
1

現在,爲了完全透明,這是作業。第一部分是創建一個存儲函數來計算物品的折扣價格。它接受項目ID的一個參數並返回折扣價格的值。函數名稱是discount_price。這我已經完成,它工作正常。如何在功能中使用功能

接下來的部分是:「5.編寫一個腳本,創建並調用名爲item_total的存儲函數,該函數計算Order_Items表中的項目總量(折扣價格乘以數量)。爲此,此函數應該接受物品ID的一個參數,它應該使用您在練習2中創建的discount_price函數,並且應該返回該物品的總價值。「

我的問題是,我如何將一個函數的值傳遞給另一個?我只需要基本的語法。我的教科書不包含任何示例,我無法在任何地方找到明確的答案。

+0

這是什麼語言,sql? –

+0

它在oracle pl/sql中 – Itsonlyme

回答

1

Believe this link有你正在尋找的例子。 基本上你會這麼稱呼它,就像你通常在sql-plus或sql-developer中調用它。

例如:

returl_val := SUBSTR(string_in,4,1);

4

您可以在一個函數中恰好在你從一個語句或查詢調用它以同樣的方式調用一個函數;例如:

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