2015-06-20 28 views
0

我正在從Oracle的SQL Developer中處理存儲過程。 存儲過程編譯,兩個for循環工作作爲exepted。 我的問題: 如果我讀出例如pos等單個變量「AssetValueCHF」,它是有道理的,並給我正確的價值。但是,如果我想將它們添加到它的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; 

輸出這裏: 開始... 組合gefunden X X X X X X X X X X Prozess wasdet。

你能幫助我嗎?

即時通訊使用的是Oracle 12.1和Oracle開發3.2.20.10

+0

有趣的代碼格式化系統,你有;) –

回答

1

好了,OMG ......

我工作太長時間......現在的工作:

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

那是我的錯。