powered by simpleCommunicator - 2.0.44     © 2025 Programmizd 02
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Проблем в триггерах
5 сообщений из 5, страница 1 из 1
Проблем в триггерах
    #32001792
Serginsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
1. Приспичело вот чтобы получаемые данные в тригерах в структурах :new & :old
передать в сохраненную процедуру
2. Как обратиться к полям какой-либо структуры через индекс а не по именованию поля (наверное потому, что, например небуду знать наименование этих полей)

Помогите, пжлста, кто знает начинающему.
...
Рейтинг: 0 / 0
Проблем в триггерах
    #32001803
SurAnd
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
1.
Да нет проблем, просто к ним NEW&OLD нужно обращаться с двоеточием.
Имеем таблицу ASSA
CREATE TABLE assa
(
a VARCHAR2(100),
id_doc NUMBER
)
PCTFREE 10
PCTUSED 40
INITRANS 1
MAXTRANS 255
/
Триггер для неё
CREATE OR REPLACE TRIGGER andrew_assa_proba
BEFORE INSERT OR DELETE OR UPDATE
ON assa
REFERENCING NEW AS NEW OLD AS OLD
FOR EACH ROW
Begin
PROBA_1(:old.a, :old.id_doc, 0);
PROBA_1(:new.a, :new.id_doc, 1);
End;
/
Процку для сохранения старых и новых параметров.
Procedure PROBA_1
( par1 varchar2, par2 number, par3 number)
IS
BEGIN
insert into assa1(a, id_doc, N_O, timestamp) values(par1,par2,par3, sysdate);
END; -- Procedure PROBA_1

Ну и другу талбличку с похожим параметрами:
CREATE TABLE assa1
(
a VARCHAR2(100),
id_doc NUMBER,
n_o NUMBER(1),
timestamp DATE
)
PCTFREE 10
PCTUSED 40
INITRANS 1
MAXTRANS 255
/
Счастья Вам, в 2001 году!!!


А по второму вопросу что-то не понял, поясни, please.
...
Рейтинг: 0 / 0
Проблем в триггерах
    #32001807
Serginsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо за ответ, но это я умею
А не умею вот что:

есть структура типа RECORD - она же :NEW или :OLD, которые возвращаются в триггере.
В Microsoft все просто - там это не структуры, а таблицы и на них можно сделать селект,
курсор и т.п. а в Оракле мне нужно что-то подобное. Селект на структуру не сделаешь,
и в качестве параметра ее не передашь в другое место. И хочется в цикле пройтись по полям
структуры, т.е.:

триггер с :NEW & :OLD
My_procedure(:NEW, :OLD)
-----
procedure My_procedure(rec1, rec2)
for i to минимальное_значение..максимальное_значение
... := rec ;
-----
то есть хочется обращаться к полям структуры как к типу TABLE
если делать через TABLE то все равно надо в цикле как то перегнать в него.
Дело в том что не хотелось бы писать для всей базы данных для каждой таблицы
перечисление всех полей - правильно сделать это в цикле независимо от структуры таблиц
и применить это во нужных тригерах.
Вот знаний тут и не хватает.
Может кто знает ?????
...
Рейтинг: 0 / 0
Проблем в триггерах
    #32001823
SurAnd
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ладно, я подумаю.
...
Рейтинг: 0 / 0
Проблем в триггерах
    #32001864
SurAnd
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Не буду пересказывать, посмотри сюда, и многое станет яснее. Не совсем то, что ты просил, но фактуркой для дальнейшего действа послужит.
http://www.oramag.ru/default.htm?rub=7&ID=579
...
Рейтинг: 0 / 0
5 сообщений из 5, страница 1 из 1
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Проблем в триггерах
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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