不能在存储过程中添加两个数字.我错过了什么吗?



我在 Oracle 的 SQL Developer 中处理存储过程。存储过程编译,两个 for 循环都按执行方式工作。我的问题:例如,如果我读出像pos这样的单个变量。资产价值CHF"这是有道理的,给了我正确的价值。但是,如果我想将它们添加到总值中,则为 NULL。

下面是存储过程:

   create or replace 
PROCEDURE AVGCLIENTRISKPORFOLIOS (
  customer IN NUMBER,
  avgRisk OUT NUMBER
)AS 
  totalAsset  NUMBER ;
  riskRankXAsset NUMBER ;
BEGIN
      DBMS_OUTPUT.PUT_LINE('Starting...');
  FOR portf IN (SELECT "PortfolioId" FROM "Portfolios" WHERE "CustomerId"=customer) LOOP
    DBMS_OUTPUT.PUT_LINE('Portfolio gefunden');
    FOR pos IN (SELECT "AssetValueCHF","RiskRank" FROM "Positions" WHERE "Portfolio_PortfolioId"=portf."PortfolioId") LOOP
      /*these two lines here are the problem*/
      totalAsset:=totalAsset+pos."AssetValueCHF"; 
      riskRankXAsset:=riskRankXAsset + pos."AssetValueCHF" *pos."RiskRank" ; 
      DBMS_OUTPUT.PUT_LINE('x');   
      DBMS_OUTPUT.PUT_LINE(totalAsset);     
    END LOOP;
  END LOOP;
  avgRisk:=riskRankXAsset/totalAsset;
END AVGCLIENTRISKPORFOLIOS;

此处的输出为:开始。。。Portfolio gefundenxxxxxxxxxxProzess beendet.

你能帮我吗?

我使用的是 Oracle 12.1 和 Oracle Developer 3.2.20.10

好的,天哪...

我工作太久了...它现在有效:

 totalAsset  NUMBER :=0;
 riskRankXAsset NUMBER :=0;

那是我的错误。

最新更新