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

Вызов процедуры из триггера

04.09.2018, 15:22. Показов 5881. Ответов 3
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Уважаемые знатоки, помогите! В программировании - нуб полнейший. Практикуюсь решая задачки, которые мне придумывают товарищи.
Есть условие - создать таблицу, в которой колонка (text) будет заполнятся рандомным числом от 1-3 и на основании этого рандомного будет так же доставленно слово к ответу ( если рандомное число 1 - "Математика", если 2 - "Физика", если 3 - "Логика"). т.е. колонка должна заполняться строками в виде "1 Математика", "2 Физика" и т.д.
Создавал отдельно процедуру для такого рандома, также создал триггер, но не могу триггером вызвать эту процедуру, чтобы она заполняла таблицу.
Таблицу нужно заполнять при помощи цикла. Всё это делаю в Pl/sql developer.
Прошу Вас дать парочку советов, как можно решить эту задачу, используя цикл, процедуру и триггер.
Заранее спасибо всем, кто откликнется.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
04.09.2018, 15:22
Ответы с готовыми решениями:

Вызов процедуры
Есть процедура динамического прохода по стобцам create or replace package Test_Dynamic_Col ...

Создание и вызов процедуры
Создаю процедуру create or replace procedure "RAS_TREN" (fio_trener IN OUT VARCHAR2) is begin...

Создание и вызов хранимой процедуры
Привет всем. ест таблица SALES, Мне надо создать процедур и сохранит их в базе при SELECT, INSERT...

Parallel hint убирает вызов процедуры
Есть пакет и в нём процедуры A, B, C и Main которая вызывает первые две, схематически примерно так:...

3
Модератор
4217 / 3058 / 583
Регистрация: 21.01.2011
Сообщений: 13,205
04.09.2018, 16:24 2
Лучший ответ Сообщение было отмечено noob2424 как решение

Решение

Цитата Сообщение от noob2424 Посмотреть сообщение
но не могу триггером вызвать эту процедуру
Вызов процедуры из триггера ничем не отличается от вызова из другой процедуры. В чем проблема?
0
0 / 0 / 0
Регистрация: 03.09.2018
Сообщений: 4
04.09.2018, 17:35  [ТС] 3
Задачу уже решил другим способом, не создавая процедуру. Теперь есть другая проблема.
Написал цикл для добавления в таблицу строк
Oracle 11 SQL
1
2
3
4
5
6
7
8
9
BEGIN
 
  FOR i IN 1..5 LOOP 
    IF i=i THEN
INSERT INTO table_of_max_max(date0, iterration_number) VALUES(SYSDATE, i);
    END IF;
  END LOOP;
 
END;

если запускать его самого по себе - работает. Но попытался запустить цикл через процедуру
Oracle 11 SQL
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
CREATE OR REPLACE PROCEDURE scheduler_test(
       loop_number NUMBER)
       IS
     test NUMBER;
       
 
BEGIN
 
  FOR i IN 1..loop_number LOOP                                                                  
   IF i=i THEN
INSERT INTO table_of_max_max(date0, iterration_number) VALUES(SYSDATE, i);
    END IF;
  END LOOP;
 
END;
компиляция проходит успешно, процедура запускается, но таблица не обновляется. Не могу заметить ошибку. Почему так?
0
Модератор
4217 / 3058 / 583
Регистрация: 21.01.2011
Сообщений: 13,205
05.09.2018, 09:26 4
Лучший ответ Сообщение было отмечено noob2424 как решение

Решение

Цитата Сообщение от noob2424
процедура запускается, но таблица не обновляется
Если Oracle не выдает ошибок, то причины м.б. 2:
1. цикл не выполняется ни одного раза из-за неверного loop_number
2. после выполнения процедуры не выдается COMMIT, а результат смотришь в другой сессии
0
05.09.2018, 09:26
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
05.09.2018, 09:26
Помогаю со студенческими работами здесь

Вызов хранимой процедуры Oracle PL/SQL
Здравствуйте! Мне интересно вызова этой хранимой процедуры. На пример Создал таблица ...

Вызов процедуры из триггера
Собственно имеется процедура, которая вызывается триггером (вставляет в табл. 'Svalka' заданный...

Вызов триггера
Здравствуйте, у меня имееться БД(MySQL) подключёная через SQLConnection->SimpleDataSet.... мне...

Вызов триггера по времени
Здравствуйте! Я настроил копирование из таблицы в...


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

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