1

バグはどこですか?コンパイルはエラーで終了し、どこが間違っているのかわかりません。

create or replace
PROCEDURE make_payoff(user_id_argument number) 
is
begin
payoff_amount:= 0;
CURSOR Clicks IS
    SELECT c.cpc FROM click as c JOIN widget w ON w.id = c.widget_id JOIN website web ON web.id = w.website_id WHERE web.user_id = user_id_argument AND c.payoff_id IS NULL;
BEGIN
FOR Click IN Clicks
LOOP
    payoff_amount:= payoff_amount + Click.cpc;
END LOOP;

INSERT INTO payoff (user_id, amount) VALUES (user_id_argument, payoff_amount);
COMMIT;
end;

私は得ています:

ERROR at line 1:
ORA-06550: line 1, column 7:
PLS-00905: object S10306.MAKE_PAYOFF is invalid
ORA-06550: line 1, column 7:
PL/SQL: Statement ignored 

編集:カーソル名を修正しましたが、エラーは同じです

4

3 に答える 3

0

ユーザーsysの下に自分のユーザー用のプロシージャを作成しました。手順を開始すると、あなたと同じエラーを受け取りました。手順は有効でした。別のユーザーの下でオブジェクトを再コンパイルしても、問題は解決しませんでした。プロシージャを削除し、自分のユーザーとして作成しました。問題が解決しました。

于 2021-02-25T05:36:18.797 に答える