powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Ошибка триггера
10 сообщений из 10, страница 1 из 1
Ошибка триггера
    #39970235
SeamusPKC
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Не могу создать триггер выдает ошибку:
Compilation failed, line 11 (12:20:26) The line numbers associated with compilation errors are relative to the first BEGIN statement. This only affects the compilation of database triggers.
PLS-00225: subprogram or cursor 'V' reference is out of scopeCompilation failed, line 11 (12:20:26) The line numbers associated with compilation errors are relative to the first BEGIN statement. This only affects the compilation of database triggers.
PL/SQL: Statement ignored
Хотя в процедурах и функциях все срабатывает
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
create or replace TRIGGER trig_premiya_personal
BEFORE INSERT ON offers FOR EACH ROW
DECLARE
    schet number;
    CURSOR cur2 is select * from mmprod;
    v_id cur2%ROWTYPE;
BEGIN
    open cur2;
    select count(*) into schet from mmprod;
    IF INSERTING THEN 
    for i in 1..schet loop
        FETCH cur2 INTO v_id;
        if 3000<=v_id.summaoffer or 20<=v.id.kol then INSERT INTO nachisleniya VALUES (v_id.sellid, 100);
        commit;
        END IF;
    end loop;
    END IF;
    CLOSE cur2;
END;
...
Рейтинг: 0 / 0
Ошибка триггера
    #39970262
Фотография andrey_anonymous
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SeamusPKC
PLS-00225: subprogram or cursor 'V' reference is out of scopeCompilation failed, line 11
...
Код: plsql
1.
2.
3.
...
        if 3000<=v_id.summaoffer or 20<=v.id.kol then INSERT INTO nachisleniya VALUES (v_id.sellid, 100);
...

...
Рейтинг: 0 / 0
Ошибка триггера
    #39970270
Фотография Stax
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SeamusPKC,

коммит в триггере так задумано?

....
stax
...
Рейтинг: 0 / 0
Ошибка триггера
    #39970302
SeamusPKC
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
andrey_anonymous,

изменил, теперь вот так, ошибка осталась
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
create or replace TRIGGER trig_premiya_personal
BEFORE INSERT ON offers FOR EACH ROW
DECLARE
    schet number;
    CURSOR cur2 is select * from mmprod;
    v_id cur2%ROWTYPE;
BEGIN
    open cur2;
    select count(*) into schet from mmprod;
    IF INSERTING THEN 
    for i in 1..schet loop
        FETCH cur2 INTO v_id;
        if 3000<=v_id.summaoffer or 20<=v_id.kol then INSERT INTO nachisleniya VALUES (v_id.sellid, 100);
        END IF;
    end loop;
    END IF;
    CLOSE cur2;
END;



вот ошибка
Compilation failed, line 11 (14:17:31) The line numbers associated with compilation errors are relative to the first BEGIN statement. This only affects the compilation of database triggers.
PL/SQL: ORA-00947: not enough valuesCompilation failed, line 11 (14:17:31) The line numbers associated with compilation errors are relative to the first BEGIN statement. This only affects the compilation of database triggers.
PL/SQL: SQL Statement ignored
...
Рейтинг: 0 / 0
Ошибка триггера
    #39970311
dmdmdm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SeamusPKC
ORA-00947: not enough values


Вы каждую ошибку будете с нами обсуждать?
...
Рейтинг: 0 / 0
Ошибка триггера
    #39970316
Фотография Stax
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SeamusPKC,

перечислете поля в INSERT INTO nachisleniya(х1,х2)

ps
for i in 1..schet loop странноватый цикл

.....
stax
...
Рейтинг: 0 / 0
Ошибка триггера
    #39970325
SeamusPKC
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Stax, там значения ид и фиксированная ставка пример:
values(1,100) что должно предавать.

Сейчас понял.что если строк нету, то и цикл не сработает, но записи есть и по сути должно работать
...
Рейтинг: 0 / 0
Ошибка триггера
    #39970436
alex-ls
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SeamusPKC
и по сути должно работать

не должно это работать....
...
Рейтинг: 0 / 0
Ошибка триггера
    #39970444
Фотография Stax
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SeamusPKC
Stax, там значения ид и фиксированная ставка пример:
values(1,100) что должно предавать.

Сейчас понял.что если строк нету, то и цикл не сработает, но записи есть и по сути должно работать


SQL> insert into t values(1,1);
insert into t values(1,1)
*
ERROR at line 1:
ORA-00947: not enough values

покажите структуру nachisleniya
desc nachisleniya

надо перечислять поля в инсерт

INSERT INTO nachisleniya(pole1,pole2) VALUES (v_id.sellid, 100);

ps
о цикле

select count(*) into schet from mmprod;
IF INSERTING THEN

в етот момент к-во поменяется (добавят/удалят строки)

for i in 1..schet loop

часто из цикла выходят по not found
.....
stax
...
Рейтинг: 0 / 0
Ошибка триггера
    #39970474
SeamusPKC
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Stax, спасибо тебе, разобрался, все работает
...
Рейтинг: 0 / 0
10 сообщений из 10, страница 1 из 1
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Ошибка триггера
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]