Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Web программирование > SQL, базы данных
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 03.05.2015, 16:46   #1
USER25
Пользователь
 
Регистрация: 28.11.2014
Сообщений: 11
По умолчанию oracle trigger: Возникают ошибки при его написании

Подскажите пожалуйста в чем ошибка при написании триггера, вот сам триггер:
Код:
create or replace trigger stoimost
after insert or update of price_uslugi on zakaz_uslugi
for each row
declare
price_uslug number(5);
kol_vo_uslug number(3);
begin
select price into price_uslug
from uslugi
where price=:new.price_uslug;
select kol_vo_zakaz into kol_vo_uslug
from zakaz_uslugi
where kol_vo_zakaz=:new.kol_vo_uslug
:old.price_uslugi=price_uslug*kol_vo_uslug
end;
а вот ошибка:
Цитата:
ERROR at line 12: PLS-00103: Encountered the symbol "end-of-file" when expecting one of the following:

begin case declare end exception exit for goto if loop mod
null pragma raise return select update while with

<< close current delete fetch lock insert
open rollback savepoint set sql execute commit forall merge
pipe
1. create or replace trigger stoimost
2. after insert or update of price_uslugi on zakaz_uslugi
3. for each row

Последний раз редактировалось USER25; 03.05.2015 в 17:21.
USER25 вне форума Ответить с цитированием
Старый 03.05.2015, 17:36   #2
lomastr_
Форумчанин
 
Регистрация: 16.01.2015
Сообщений: 672
По умолчанию

; перед эндом не поставили? и какой то странный триггер
lomastr_ вне форума Ответить с цитированием
Старый 03.05.2015, 18:20   #3
USER25
Пользователь
 
Регистрация: 28.11.2014
Сообщений: 11
По умолчанию

а чем именно странный?
USER25 вне форума Ответить с цитированием
Старый 03.05.2015, 18:46   #4
lomastr_
Форумчанин
 
Регистрация: 16.01.2015
Сообщений: 672
По умолчанию

а зачем? это все можно сделать и без триггера
lomastr_ вне форума Ответить с цитированием
Старый 03.05.2015, 18:54   #5
USER25
Пользователь
 
Регистрация: 28.11.2014
Сообщений: 11
По умолчанию

все равно не работает даже с пропущенной точкой с запятой
USER25 вне форума Ответить с цитированием
Старый 03.05.2015, 19:34   #6
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Насколько я помню точку-запятую нужно ставить после каждого запроса.
Т.е.
Код:
create or replace trigger stoimost
after insert or update of price_uslugi on zakaz_uslugi
for each row
declare
price_uslug number(5);
kol_vo_uslug number(3);
begin
 select price into price_uslug
  from uslugi
  where price=:new.price_uslug;

 select kol_vo_zakaz into kol_vo_uslug
  from zakaz_uslugi
  where kol_vo_zakaz=:new.kol_vo_uslug and
         :old.price_uslugi=price_uslug*kol_vo_uslug;
end stoimost;
И после end имя триггера
I'm learning to live...
Stilet вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Ошибки. Delphi+Oracle Дмитрий1993 БД в Delphi 4 28.01.2013 09:53
Pascal. Программа по обработке массивов данных. При запуске возникают ошибки. Student1 Помощь студентам 3 04.01.2011 21:56
При работе с TreeView возникают ошибки. TimRus Microsoft Office Access 2 08.06.2010 23:25
почему в MS Visual 2008 С++ возникают ошибки, хотя в С++ 6 таких проблем небыло atlon Visual C++ 22 03.03.2009 11:10