我在Oracle的SQL Developer中处理存储过程。 存储过程编译,两个循环工作为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 Developer 3.2.20.10
答案 0 :(得分:1)
好的,omg ...
我工作太久......现在有效:
totalAsset NUMBER :=0;
riskRankXAsset NUMBER :=0;
多数民众赞成是我的错误。