Форум программистов, компьютерный форум, киберфорум
Oracle
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.87/15: Рейтинг темы: голосов - 15, средняя оценка - 4.87
0 / 0 / 0
Регистрация: 11.04.2015
Сообщений: 42
1

Триггер на ограничение вставки в таблицу данных

24.03.2016, 13:54. Показов 3128. Ответов 3

Author24 — интернет-сервис помощи студентам
Добрый день.
Когда добавляю новую строку в таблицу, если условия не соблюдаются, то срабатывает исключение,здесь проблем не возникло.
А если ввожу данные, которые точно должны были добавиться, то после нажатия на кнопку "Создать" страница просто бесконечно ожидает ответа от сервера и ничего не происходит.
Подскажите, пожалуйста, в чем может быть проблема

SQL
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
CREATE OR REPLACE TRIGGER "VP"
BEFORE
INSERT OR UPDATE ON VIDPRI
FOR each ROW
DECLARE id NUMBER;
id_vp NUMBER;
cou NUMBER;
i NUMBER;
inv NUMBER;
j NUMBER;
 
cursor c1 IS SELECT idvp FROM vidpri;
vrm c1%ROWTYPE;
 
BEGIN
 
IF ((:NEW.dateBack IS NOT NULL) AND (:NEW.dateGive>:NEW.dateBack)) THEN
 
raise_application_error(-20001,'Невозможно указать дату возврата раньше, чем дату выдачи');
END IF;
 
SELECT ekz.spisat INTO id FROM ekz WHERE idekz=:NEW.idekz;
IF (id = 1) THEN
raise_application_error(-20001,'Книга списана');
END IF;
 
OPEN c1;
loop
fetch c1 INTO vrm;
SELECT idEkz INTO inv FROM vidpri WHERE idvp = vrm.idvp AND dateBack IS NULL;
SELECT COUNT(idEkz) INTO cou FROM vidpri WHERE idvp = vrm.idvp AND dateBack IS NULL;
IF (cou > 0) THEN
BEGIN
IF ( :NEW.idEkz = inv ) THEN
BEGIN
 
raise_application_error(-20001,'Книга уже выдана');
END;
END IF;
END;
END IF;
END loop;
close c1;
END;
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
24.03.2016, 13:54
Ответы с готовыми решениями:

Триггер, для ограничение ввода данных
Здравствуйте, не могу вообще понять как сделать данное условие.... Хочу задать условия («Чтобы...

Реализовать триггер на вставку данных в таблицу и на модификацию данных
Всем привет..с трудом дается тема триггеры ))запросы пишу хорошо,а вот с ними проблема... Дана...

Триггер на перенос/копирование данных в другую таблицу
Добрый день. Есть таблица с документами. В ней есть столбец с датой исполнения (dat_isp) и...

Ограничение ввода данных в таблицу
Есть таблица и форма ввода. Нужно сделать так, чтобы: 1. Через таблицу нельзя было вводить новые...

3
105 / 49 / 26
Регистрация: 01.09.2014
Сообщений: 140
24.03.2016, 14:23 2
Лучший ответ Сообщение было отмечено Elise_194 как решение

Решение

SQL
1
EXIT WHEN c1%NOTFOUND;
1
763 / 664 / 194
Регистрация: 24.11.2015
Сообщений: 2,158
24.03.2016, 15:56 3
Вижу, вы вернулись к теме
Цитата Сообщение от AGK Посмотреть сообщение
...
Будут проблемы - спрашивайте.
1
0 / 0 / 0
Регистрация: 11.04.2015
Сообщений: 42
24.03.2016, 17:50  [ТС] 4
AGK, я его видоизменила немного уже. С дополнением от Lorsik, все работает теперь, спасибо всем
0
24.03.2016, 17:50
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
24.03.2016, 17:50
Помогаю со студенческими работами здесь

Триггер где ввод данных в таблицу ограничивается определеннымми символами
Здравствуйте, нужна помощь по написанию триггера. Задание: Реализовать триггер с помощью...

Разработать триггер, запускаемый при занесении новой строки в таблицу. Триггер должен увеличивать счетчик ч
Разработать триггер, запускаемый при занесении новой строки в таблицу. Триггер должен увеличивать...

Тригеры на ограничение ввода данных в таблицу
Помогите кто может. Нужно написать тригер для ограничения ввода данных в таблицу, к примеру есть...

Ошибка при создании метода для вставки данных в таблицу БД (Java - Eclipse)
Никак не могу понять в чем проблема, ребята... Подключил PostgreSQL к Eclipse, все работает. Создал...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru