Oracle

如何從pl sql過程中獲取返回值並將其分配給變數?

  • March 2, 2020

程式碼:

  execute x.procedurename(row.accc_no, row.bill_no, 0, null, row.total_balance, 'A',assgn_scen_site_cv, :assgn_scen_site_cv);

這是我的程序。

如何從此過程中獲取返回值並將其分配給變數?

您可以像這樣創建它:

CREATE OR REPLACE PROCEDURE procedurename(param1 NUMBER, param2 varchar(20), returnvalue OUT NUMBER);
IS
BEGIN
   ... your code
END;

然後像這樣使用它:

returnvalue NUMBER;
procedurename(0, 'xxx', returnvalue);
dbms_output.putline(returnvalue);

您可以在 Oracle 網站上查看CREATE PROCEDURE文件。

如果我理解正確,您正在嘗試使用具有返回值的現有過程。這可以在另一個過程、包或函式中完成,但最簡單的方法是使用塊。在聲明部分中,您定義將接收值的變數,然後在對過程的呼叫中使用這些變數。

DECLARE
  vAccc_no              Number(10);
  vBill_no              Number(10);
  vTotal_Balance        Number(10,2);
  vAssgn_scen_site_cv   Varchar(80);   
  vAssgn_scen_site_cv_i Varchar(80);
BEGIN   
  vAssgn_scen_site_cv_i := 'Pass To Procedure';
  x.procedurename(vAccc_no, vBill_no, 0, null, vTotal_Balance, 'A', vAssgn_scen_site_cv
     , vAssgn_scen_site_cv_i);
  DBMS_Output.Put_Line('New value of Total_Balance: ' || vTotalBalance);
END;
/

我在猜測數據類型和輸入/輸出是什麼。

引用自:https://dba.stackexchange.com/questions/123803