Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Триггер логов / 7 сообщений из 7, страница 1 из 1
05.03.2018, 14:05
    #39610644
Goofy122
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Триггер логов
Создал таблицу логов и соотвесно триггер на DML,

Код: plsql
1.
2.
 MY.CHANGED_BY := USER;
 MY.CHANGED_TIME := SYSDATE;



нормально добавляются , а как прописать чтобы название компютера тоже добавлялось то есть терминал ?

Код: plsql
1.
 SELECT TERMINAL FROM SYS.AUD$ 
...
Рейтинг: 0 / 0
05.03.2018, 14:07
    #39610646
Goofy122
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Триггер логов
Goofy122Создал таблицу логов и соотвесно триггер на DML,

Код: plsql
1.
2.
 MY.CHANGED_BY := USER;
 MY.CHANGED_TIME := SYSDATE;



нормально добавляются , а как прописать чтобы название компютера тоже добавлялось то есть терминал ?

Код: plsql
1.
 SELECT TERMINAL FROM SYS.AUD$ 



или же IP пользователя
...
Рейтинг: 0 / 0
05.03.2018, 14:09
    #39610650
123йй
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Триггер логов
Goofy122,

SYS_CONTEXT/USERENV
...
Рейтинг: 0 / 0
05.03.2018, 14:15
    #39610658
Goofy122
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Триггер логов
123ййGoofy122,

SYS_CONTEXT/USERENV


Код: plsql
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.
CREATE TABLE DEPT$AUDIT (
        DEPTNO       NUMBER,
        DNAME        VARCHAR2(14 byte),
        LOC          VARCHAR2(13 byte),
        CHANGE_TYPE  VARCHAR2(1 byte),
        CHANGED_BY   VARCHAR2(30 byte),
        TERMINAL        VARCHAR2(50),
        CHANGED_TIME DATE
    );
    
    SELECT * FROM DEPT$AUDIT;
    
    
    CREATE OR REPLACE TRIGGER AUDITDEPTAR AFTER
    INSERT OR UPDATE OR DELETE ON DEPT FOR EACH ROW
    DECLARE
    MY DEPT$AUDIT%ROWTYPE;
    BEGIN
        IF INSERTING THEN MY.CHANGE_TYPE := 'I';
        ELSIF UPDATING THEN MY.CHANGE_TYPE :='U';
        ELSE MY.CHANGE_TYPE := 'D';
        END IF;
 
       MY.CHANGED_BY := USER;
       MY.CHANGED_TIME := SYSDATE;
       MY.TERMINAL := SYS_CONTEXT/USERENV;

       CASE MY.CHANGE_TYPE
       WHEN 'I' THEN
          MY.DEPTNO := :NEW.DEPTNO;
         MY.DNAME := :NEW.DNAME;
         MY.LOC := :NEW.LOC;
      ELSE
         MY.DEPTNO := :OLD.DEPTNO;
         MY.DNAME := :OLD.DNAME;
         MY.LOC := :OLD.LOC;
      END CASE;
 
      INSERT INTO DEPT$AUDIT VALUES MY;
  END;

 [Error] PLS-00306 (29: 23): PLS-00306: wrong number or types of arguments in call to 'SYS_CONTEXT'




Где ошибка помогите пожалуйста
...
Рейтинг: 0 / 0
05.03.2018, 14:28
    #39610666
шК0ДЕР
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Триггер логов
Goofy122,
Код: plsql
1.
select SYS_CONTEXT('USERENV', 'IP_ADDRESS') from DUAL;
...
Рейтинг: 0 / 0
05.03.2018, 14:29
    #39610668
шК0ДЕР
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Триггер логов
...
Рейтинг: 0 / 0
05.03.2018, 14:41
    #39610681
Goofy122
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Триггер логов
шК0ДЕРGoofy122,
Код: plsql
1.
select SYS_CONTEXT('USERENV', 'IP_ADDRESS') from DUAL;




спасибо
...
Рейтинг: 0 / 0
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Триггер логов / 7 сообщений из 7, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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