Thanks Jesse and Stphane.

This script works,  and is more elegant than my workaround.

Tks.

Ramon



-----Original Message-----
From:   "[EMAIL PROTECTED]" <[EMAIL PROTECTED]> on behalf of      "Jesse, Rich" 
<[EMAIL PROTECTED]>
Sent:   Thursday, April 04, 2002 5:28 PM
To:     "Multiple recipients of list ORACLE-L" <[EMAIL PROTECTED]>
Subject:        RE: DB Trigger to keep record of DDL

It's your SELECT that's causing the ORA-1422.  If you're using 8i or 9i, you
can avoid the SELECT and use the SYS_CONTEXT function like this:

CREATE OR REPLACE TRIGGER CONTROL_DDL
   BEFORE DDL ON DATABASE
BEGIN
   INSERT INTO CONTROL_OBJETOS
        (USUARIO,       BASE_DATOS,
        HORA,           OPERACION, 
        ESQUEMA,        TIPO_OBJETO,
        OBJETO, MAQUINA,
        USUARIO_OS)
   VALUES
        (ORA_LOGIN_USER,        ORA_DATABASE_NAME,
        SYSDATE,                ORA_SYSEVENT,
        ORA_DICT_OBJ_OWNER,     ORA_DICT_OBJ_TYPE,
        ORA_DICT_OBJ_NAME,      SYS_CONTEXT('USERENV','TERMINAL'),
        SYS_CONTEXT('USERENV','OS_USER'));
END;

(Note: I didn't test this code!!!!)

HTH!  GL!  :)

Rich Jesse                           System/Database Administrator
[EMAIL PROTECTED]              Quad/Tech International, Sussex, WI USA


> -----Original Message-----
> From: [EMAIL PROTECTED] 
> [mailto:[EMAIL PROTECTED]]
> Sent: Thursday, April 04, 2002 2:58 PM
> To: Multiple recipients of list ORACLE-L
> Subject: DB Trigger to keep record of DDL
> 
> 
> I did that trigger, it works if the only is logged in just once.
> It gives me the errors of more rows returned 1422.
> 
> How can I know in what session he is.
> 
> CREATE OR REPLACE TRIGGER CONTROL_DDL
>    BEFORE DDL ON DATABASE
> DECLARE
>    NOMBRE_MAQUINA         VARCHAR2(20);
>    USUARIO_MAQUINA        VARCHAR2(20);
> BEGIN
>    SELECT MACHINE, OSUSER INTO NOMBRE_MAQUINA, USUARIO_MAQUINA
>       FROM V$SESSION
>    WHERE
>       USERNAME = ORA_LOGIN_USER;
> 
>    INSERT INTO CONTROL_OBJETOS (USUARIO,      BASE_DATOS,
>                                 HORA,         OPERACION, 
>                                 ESQUEMA,      TIPO_OBJETO,
>                                 OBJETO,       MAQUINA,
>                                 USUARIO_OS)
>    VALUES
>                                (ORA_LOGIN_USER,     ORA_DATABASE_NAME,
>                                 SYSDATE,            ORA_SYSEVENT,
>                                 ORA_DICT_OBJ_OWNER, ORA_DICT_OBJ_TYPE,
>                                 ORA_DICT_OBJ_NAME,  NOMBRE_MAQUINA,
>                                 USUARIO_MAQUINA);
> END;
>                                  
>                                  
>     TIA
> 
> Ramon E. Estevez
-- 
Please see the official ORACLE-L FAQ: http://www.orafaq.com
-- 
Author: Jesse, Rich
  INET: [EMAIL PROTECTED]

Fat City Network Services    -- (858) 538-5051  FAX: (858) 538-5051
San Diego, California        -- Public Internet access / Mailing Lists
--------------------------------------------------------------------
To REMOVE yourself from this mailing list, send an E-Mail message
to: [EMAIL PROTECTED] (note EXACT spelling of 'ListGuru') and in
the message BODY, include a line containing: UNSUB ORACLE-L
(or the name of mailing list you want to be removed from).  You may
also send the HELP command for other information (like subscribing).
--
Please see the official ORACLE-L FAQ: http://www.orafaq.com
--
Author:
  INET: [EMAIL PROTECTED]

Fat City Network Services    -- (858) 538-5051  FAX: (858) 538-5051
San Diego, California        -- Public Internet access / Mailing Lists
--------------------------------------------------------------------
To REMOVE yourself from this mailing list, send an E-Mail message
to: [EMAIL PROTECTED] (note EXACT spelling of 'ListGuru') and in
the message BODY, include a line containing: UNSUB ORACLE-L
(or the name of mailing list you want to be removed from).  You may
also send the HELP command for other information (like subscribing).

Reply via email to