Где ошибка? Компиляция заканчивается ошибками, и я понятия не имею, где я ошибаюсь.Ошибка в процедуре Oracle, объект недействителен
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
EDIT: Я исправил имя курсора, но ошибка та же
'FOR Click IN Click' ??? Прежде всего, ваш курсор имеет то же имя, что и ваше поле. Даже я в замешательстве, не говоря уже о интерпретаторе PL/SQL. –
'click' в' clicks' – Brian
OP должен использовать SHOW ERROR, а затем исправить свои собственные синтаксические ошибки. – APC