如何在Oracle SQL函数中计算新参数

如何在Oracle SQL函数中计算新参数,sql,oracle,function,Sql,Oracle,Function,我试图使用发票表中的一些值计算此函数中的到期余额。我不太确定计算线的确切位置。任何帮助都将不胜感激 Create or Replace Function Get_balance_due( f_invoice_id In Number) Return Number AS balance_due Number; f_invoice_total Number; f_payment_total Number; f_credit_total Number; Begin

我试图使用发票表中的一些值计算此函数中的到期余额。我不太确定计算线的确切位置。任何帮助都将不胜感激

Create or Replace Function Get_balance_due(
f_invoice_id In Number)
Return Number
AS
    balance_due Number;
    f_invoice_total Number;
    f_payment_total Number;
    f_credit_total Number;


Begin
    select (vendor_id into f_vendor_id,
    invoice total into f_invoice_total,
    payment_total into f_payment_total,
    credit_total into f_credit_total)

From
    invoices
Where
    invoice_id = f_invoice_id
    balance_due = f_invoice_total - f_payment_total - f_credit_total;
Return (balance_due);
End;
/
SHOW ERRORS Function Get_balance_due;
试着这样,

CREATE OR REPLACE 
FUNCTION get_balance_due(
         f_invoice_id IN NUMBER)
         RETURN NUMBER
AS
     balance_due NUMBER;
     f_invoice_total NUMBER;
     f_payment_total NUMBER;
     f_credit_total NUMBER;

BEGIN
     SELECT invoice total, payment_total, credit_total
     INTO  f_invoice_total, f_payment_total, f_credit_total
     FROM  invoices
     WHERE invoice_id = f_invoice_id;

     balance_due := f_invoice_total - f_payment_total - f_credit_total;

RETURN balance_due;
END;