create the trigger

Hello

I want to create the trigger on two tables

as this - is - it possible.

CREATE OR REPLACE TRIGGER
ABC
After INSERT or UPDATE or DELETE
TABLE 1 AND TABLE 2
for each line

Start

CONDITION OF THE INSERTION OF BASE ON TABLE 2

END;


-If not possible then how can I call the trigger with trigger

Hello

This is not possible, according to the syntax that you can check in the online documentation.

When you have a trigger on the table 1, say table1_briu of relaxation, and you have a trigger on the table2, say table2_briu,

and you have
create or replace trigger table1_briu on table1 after insert or update for each row
Start
Insert into table2;
end;

the second trigger is automatically triggered.

However, I highly recommend against the implementation of triggers "cascading" in this way, mostly because when trigger2 fails, you have an incomplete transaction and Oracle does not notice.
I suggest strongly encapsulate you the complete code into a procedure that you call in a trigger on the table1 and you do not set a trigger on the table2.

HTH

--
Sybrand Bakker
Senior Oracle DBA

Tags: Database

Similar Questions

  • How to create the trigger insert for DBSequence? 10.1.3 Jdev

    Hello.. I m trying to create a field DBSequence and I read you need to create an insert on it s trigger...
    This trigger is in the database or in Jdeveloper... If it s in Jdeveloper how can I do this?
    Thank you.

    User,

    You can create the trigger in the database or write code in the class of java feature object to do.

    You can have a reading in the developer's Guide to the ADF for forms/4GL developers 6.6.3.8 section to know more about the trigger of the DB. 9.4.1.2 section talking about how to do java EO class if you prefer this method.

    John

  • Create the trigger for multiple users

    I am trying to create a trigger for a DDL event which gives an error for 2 users when they try to create a database object or a table.

    Here is my code. When ran it gives me the following error: "WARNING: trigger created with errors of complication."

    Any idea would be appreciated.

    Thank you!

    CREATE OR REPLACE TRIGGER trigger_before_create_object
    BEFORE YOU CREATE ON THE DATABASE

    BEGIN

    IF USER = USER OR "VPD_CLERK1" = "DBSEC_CLERK."
    THEN
    RAISE_APPLICATION_ERROR (' you do not have the privilege to create tables or other database objects.) Contact your administrator if you need the privilege. ") ;
    END IF;
    END;

    Published by: mkmety on April 20, 2013 12:10

    Welcome to the forum!

    Whenever you post provide your Oracle version 4-digit
    >
    I am trying to create a trigger for a DDL event which gives an error for 2 users when they try to create a database object or a table.

    Here is my code. When ran it gives me the following error: "WARNING: trigger created with errors of complication."

    Any idea would be appreciated.

    Thank you!
    >
    And to alert you to the need to view the errors you got. If you did you will see this:
    >
    PLS-00306: wrong number or types of arguments in the call to "RAISE_APPLICATION_ERROR.
    >
    Oracle cannot raise your exception if you:

    1. do not define an exception to throw
    2. don't tell Oracle how exception to throw

    See the section "Defining your own Error Messages (procedure RAISE_APPLICATION_ERROR)" in the doc of the PL/SQL language
    http://docs.Oracle.com/CD/B28359_01/AppDev.111/b28370/errors.htm#i1871

    This article has examples that show how to raise your exceptions.

  • Create the trigger to insert data from one user to another user in same Databas

    Dear Sir, I created a trigger as follows

    CREATE OR REPLACE TRIGGER TRIGGER1
    BEFORE INSERTING
    ON table1
    FOR EACH LINE
    BEGIN
    INSERT IN THE TEST. TABLE2
    VALUES (: NEW.) COLUMN1,: NEW. COLUMN2,: NEW. COLUMN3,: NEW. COLUMN4);
    END;
    /

    I want here to insert my user to user Test data. In this Situation when I Execute The above Trigger it shows error PL/SQL: ORA-00942: table or view does not exist

    Help, please

    What do you mean by run the trigger?
    Do you compile?
    Can be open as a TEST and do the following and try to compile your code of the trigger again.

    grant insert on TEST.TABLE2 to youruser;
    

    See you soon,.
    Manik.

  • Create the trigger after insert

    Hello

    I would like to ask how to create a trigger after insert on a table. Basically, what I wanted to do are when an insert to table1 it will insert the records to table2. But the problem is that folders that will be inserted in the new tables are entries/fields, who lived in NEW York City (on table of ld)

    after insertion, I wanted to add another field in table2 as status


    create table table1)

    Name varchar2 (55),
    City varchar2 (55)

    );

    create (table2)

    Name varchar2 (55)
    status int (1)
    )

    Hope you could help me.

    Thank you

    Best regards

    antok1015 wrote:
    Hello

    I would like to ask how to create a trigger after insert on a table. Basically, what I wanted to do are when an insert to table1 it will insert the records to table2.

    It's easy...

    SQL> create table table1(
      2    Name varchar2(55),
      3    City varchar2(55)
      4  );
    
    Table created.
    
    SQL>
    SQL> create table table2 (
      2    Name varchar2(55),
      3    status number(1)
      4  );
    
    Table created.
    
    SQL>
    SQL> create or replace trigger trg_tbl1 after insert on table1
      2  for each row
      3  begin
      4    insert into table2 values (:new.name, 1);
      5  end;
      6  /
    
    Trigger created.
    
    SQL> insert into table1 values ('Fred','Bob');
    
    1 row created.
    
    SQL> select * from table2;
    
    NAME                                                        STATUS
    ------------------------------------------------------- ----------
    Fred                                                             1
    
    SQL>
    

    But the problem is that folders that will be inserted in the new tables are entries/fields, who lived in NEW York City (on table of ld)

    after insertion, I wanted to add another field in table2 as status

    This is not sensible. Please explain what you mean.

  • Cannot create the trigger in Apex

    I tried to create base hosted on Oracle Apex insert triggers.

    I get 'Operator relational invalid' for mirroring script triggers included and for the mirroring of triggers script that has worked implementing my school Apex.

    Is there a reason that it does not work?

    [sql]
    create or replace trigger insert_category
    before inserting on category
    for each line
    declare
    number of new_id;
    Start
    Select seq_category.nextval in new_id double;
    : new.category.id: = new_id;
    end;

    ALTER trigger 'insert_category' enable;
    /
    [sql]

    Hello

    Moreover, you don't need the local variable new_id. You can do something like this:

    CREATE OR REPLACE TRIGGER     insert_category
    BEFORE INSERT ON            category
    FOR EACH ROW
    BEGIN
        SELECT  seq_category.NEXTVAL
        INTO    :new..category_id     -- or INTO :new.id, if id is the column name
        FROM    dual;
    END;
    

    or, to start on Oracle 11.1:

    CREATE OR REPLACE TRIGGER     insert_category
    BEFORE INSERT ON            category
    FOR EACH ROW
    BEGIN
        :new..category_id := seq_category.nextval;
    END;
    
  • How to create the trigger WHEN-LIST-CHANGED to the text at the level of the item element

    Hi all
    I have a requirement that is to say that I developed on the form that contains an emp (empno, sal, job) details in the field of the form.job table (text element) contains lov. My requirement is when I select values in the lov it must create a new record in this tabular form. I did ' t get trigger WHEN-LIST-CHANGED at the level of the element for the work of i.e text point.

    I tried this requirement by making the point of work as working fine.i of an item.it list used NEXT-ITEM KEY also to make the this.but is not our business requirements.

    When lov changes he needs to create a new line.

    How we do that. Can someone give me an idea please

    Thank you

    Hello
    In the text element, you can use trigger KEY-LISTVAL and try to use the code as...

    LIST_VALUES;
    IF :FORM.ITEM_NAME IS NOT NULL THEN
      CREATE_RECORD;
    END IF;
    

    When list change trigger only for the LIST_ITEMS and fires when you try to change the list_item

    -Clément

  • How to create the update trigger

    Hi all

    I want to create the trigger
    After the update of the

    How can I create

    I want to update my custom table "xx-per_all_vacancies.

    This trigger should be executed when
    table of hr_api_transaction update

    Hello

    It will not work

    >
    Select transaction_id INTO update_trans_id from hr_api_transactions where: NEW. LAST_UPDATE_DATE DISLIKES: NEW. CREATION_DATE;
    xx_GL_Vacancies.update_transaction (update_trans_id);

    >

    Implement

       select transaction_id INTO update_trans_id from hr_api_transactions where LAST_UPDATE_DATE NOT LIKE :NEW.CREATION_DATE;
       xx_GL_Vacancies.update_transaction(update_trans_id);
    

    This might give you an error of mutation.

    see you soon

    VT

  • Converter via the trigger to ordimage blob

    Hi, I'm doing trigger for blob convertion to ordimage but when I run it I errors what should I do to solve this problem?

    create or replace
    Obrazy.dodanie_id23233 RELAXATION
    AFTER INSERT OR UPDATE ON fotki
    FOR EACH LINE
    BEGIN
    INSERT INTO FOTKIORD (FOTKAID1, FOTKA1)
    VALUES (: NEW.fotkaid, ORDSYS.SI_STILLIMAGE (:NEW.fotka));)
    END;

    WARNING: oci_execute() function: ORA-29400: data IMG-00701 cartridge error: unable to set the properties of a collection of images ORA-06512: at "ORDSYS. ORDIMERRORCODES', line 75 ORA-06512: at "ORDSYS. ORDIMERRORCODES', line 65 ORA-06512: at "ORDSYS. ORDIMERRORCODES', line 29 ORA-06512: at "ORDSYS. ORDIMG_PKG', line 33 ORA-06512: at "ORDSYS. ORDIMAGE", line 945 ORA-06512: at"ORDSYS.SI_STILLIMAGE", line 58 ORA-06512: at the 'OBRAZY. DODANIE_ID23233', line 2 ORA-04088: error during execution of trigger "OBRAZY. DODANIE_ID23233' in C:\Program Files (x86)\Zend\Apache2\htdocs\upload.php on line 45

    994229 wrote:
    I created the trigger and it works fine, but for si_stillimag I can not why?

    Works fine for me:

    SQL> select  *
      2    from  v$version
      3  /
    
    BANNER
    --------------------------------------------------------------------------------
    Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 - 64bit Production
    PL/SQL Release 11.2.0.3.0 - Production
    CORE    11.2.0.3.0      Production
    TNS for 64-bit Windows: Version 11.2.0.3.0 - Production
    NLSRTL Version 11.2.0.3.0 - Production
    
    SQL> create table fotki(
      2                     fotkaid number not null,
      3                     fotka blob,
      4                     constraint fotki_pk primary key(fotkaid)
      5                    )
      6  /
    
    Table created.
    
    SQL> create table fotkiord(
      2                        fotkaid1 number not null,
      3                        fotka ordsys.si_stillimage
      4                       )
      5    segment creation immediate
      6  /
    
    Table created.
    
    SQL> create or replace
      2    trigger fotki_aiur
      3      after insert
      4         or update
      5      on fotki
      6      for each row
      7      begin
      8          insert
      9            into fotkiord
     10            values(
     11                   :new.fotkaid,
     12                   case
     13                     when :new.fotka is null then null
     14                     when dbms_lob.compare(:new.fotka,empty_blob()) = 0 then null
     15                     else ordsys.si_stillimage(:new.fotka)
     16                   end
     17                  );
     18  end;
     19  /
    
    Trigger created.
    
    SQL> -- NULL fotka
    SQL> insert
      2    into fotki
      3    values(
      4           1,
      5           null
      6          )
      7  /
    
    1 row created.
    
    SQL> -- empty_blob() fotka
    SQL> insert
      2    into fotki
      3    values(
      4           2,
      5           null
      6          )
      7  /
    
    1 row created.
    
    SQL> -- actual image fotka
    SQL> DECLARE
      2      v_blob blob;
      3      v_bfile BFILE := BFILENAME('TEMP','HONDA CR-V.jpg');
      4  BEGIN
      5      DBMS_LOB.CREATETEMPORARY(v_blob,TRUE);
      6      DBMS_LOB.fileopen(v_bfile,DBMS_LOB.file_readonly);
      7      DBMS_LOB.LOADFROMFILE(v_blob,v_bfile,DBMS_LOB.GETLENGTH(v_bfile));
      8      DBMS_LOB.FILECLOSE(v_bfile);
      9      INSERT
     10        INTO FOTKI
     11        VALUES(3,v_blob);
     12      DBMS_LOB.FREETEMPORARY(v_blob);
     13  END;
     14  /
    
    PL/SQL procedure successfully completed.
    
    SQL> select  *
      2    from  fotki
      3  /
    
       FOTKAID
    ----------
    FOTKA
    --------------------------------------------------------------------------------
             1
    
             2
    
             3
    FFD8FFE000104A46494600010101006000600000FFDB004300020101020101020202020202020203
    0503030303030604040305070607070706070708090B0908080A0807070A0D0A0A0B0C0C0C0C0709
    
       FOTKAID
    ----------
    FOTKA
    --------------------------------------------------------------------------------
    
    SQL> select  *
      2    from  fotkiord
      3  /
    
      FOTKAID1
    ----------
    FOTKA(CONTENT_SI(LOCALDATA, SRCTYPE, SRCLOCATION, SRCNAME, UPDATETIME, LOCAL), C
    --------------------------------------------------------------------------------
             1
    
             2
    
             3
    SI_STILLIMAGE(ORDSOURCE('FFD8FFE000104A46494600010101006000600000FFDB00430002010
    10201010202020202020202030503030303030604040305070607070706070708090B0908080A080
    
      FOTKAID1
    ----------
    FOTKA(CONTENT_SI(LOCALDATA, SRCTYPE, SRCLOCATION, SRCNAME, UPDATETIME, LOCAL), C
    --------------------------------------------------------------------------------
    7070A0D0A0A0B0C0C0C0C0709', NULL, NULL, NULL, '05-MAY-13', 1), 126992, 'JFIF', 6
    48, 1152, 'image/jpeg', '24BITRGB', 'JPEG', NULL, NULL, NULL, NULL, NULL, NULL)
    
    SQL>
    

    SY.

  • How dynamically update the role of oracle using the trigger

    How dynamically update the role of oracle using the trigger:

    I have svmanger owner of schema in the database. There are five tables belonged to svmanager.

    Table A, B, C, D, E.

    I have a role that is played only to these tables under the scheme: SVMANAGER_READ_ONLY

    now, if I create a new table F under svmanager. the role that svmanager_read_only does not work is updated, so the user had assigned role cannot access table F.

    is there a way to create the trigger for this role dynamically update any when a table is created or deleted?

    Thank you.

    I really really really don't suggest to do this - it's a bad habit. If possible I'd just adding the grant as part of the steps to the role on the new creation of the table.
    But for fun here's how you can accomplish this:

    create or replace procedure execute_grant(v_ddl in varchar2)
    is
    begin
       execute immediate v_ddl;
    end;
    /
    
    create or replace trigger catch_create_table_trg after create on schema
    DECLARE
    
    ddl_job number;
    ddl_str varchar2(50);
    begin
       IF ora_dict_obj_type = 'TABLE' THEN
    
           ddl_str := 'GRANT SELECT ON '||ora_dict_obj_owner||'.'||ora_dict_obj_name||' TO SVMANAGER_READ_ONLY';
    
           dbms_job.submit(job => ddl_job,
           what => 'execute_grant(''' || ddl_str || ''');',
           next_date => sysdate+(5/24/60/60));
    
       END IF;
    end;
    /
    

    Test it

    create table F (id number(1));
    

    Validate

    select * from ROLE_TAB_PRIVS where ROLE = 'SVMANAGER_READ_ONLY';
    
  • Create a trigger (pk of sequence) & JPA

    When I tried to create the trigger (pk of sequence), I noticed that the generated code is automatically:

    CREATE OR REPLACE TRIGGER "ORA11111". "ID_GEN ' before insert on 'S_PROJ' for each row begin if insertion then if: NEW." ' ' ID ' is null then select PROJ_SEQ.nextval in: NEW. ' ' ID ' from dual; end if; end if; end;
    ALTER TRIGGER 'ORA11111 '. "' ID_GEN ' ENABLE

    I have the JPA mapped to this table data object class, the primary key 'ID' field is declared 'int', so 'create' APP is not successful because the default type int is 0 (will never be NULL, primary key so trigger the auto-increment). How to do this?

    Thank you
    Mike

    Yes, it works for new records.

    Oracle DB has sequences. It could be used by the @SequenceGenerator. If it is properly set up the warranty that the PK constraint does not occur.

    -olaf

  • Please draw what's not in the TRIGGER script, does not trigger.

    Hi gurus of the Oracle,.

    Please help me to find out what's wrong in the trigger statement. It does not create trigger, instead, it displays line numbers like 1, 2, 3, 4... After pressing the Enter key,

    I enclose the full script, where it modifies the table, then creates the new table, the sequence of creates... Finally, it fails to create the trigger.
    ==================================================================================

    SQL > ALTER TABLE MOBILE. ADD MOBILE_USER (LAST_LOGIN TIMESTAMP);

    Modified table.

    SQL > CREATE TABLE "MOBILE". "" AUDIT_LOG.
    (
    2 3 NUMBER (16.0) 'AUDIT_LOG_ID' NOT NULL ACTIVATE.
    4 'DATE_CREATED' TIMESTAMP (6) NOT NULL ACTIVATE.
    VARCHAR2 (20 BYTE) 'AUDIT_TYPE' 5 NOT NULL ACTIVATE.
    CLOB 6 "AUDIT_DATA."
    7 CONSTRAINT "AUDIT_LOG_PK" KEY PRIMARY ("AUDIT_LOG_ID") WITH THE HELP OF INDEX PCTFREE, INITRANS 10 2 ALLOW MAXTRANS 255 STORAGE (INITIAL 65536 THEN 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645 PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 USER_TABLES DEFAULT TABLESPACE) "SERVICES_DATA".
    6 g
    9 10 PCTUSED 40 INITRANS PCTFREE MAXTRANS 255 NOCOMPRESS LOGGING STORAGE 1
    (
    INITIALS 65536 THEN 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645 PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 DEFAULT USER_TABLES
    (10-11-12)
    TABLESPACE LOB OF 'SERVICES_DATA '.
    (13-14)
    15 "AUDIT_DATA".
    16)
    17 STORE AS
    18)
    STORAGE OF 'SERVICES_DATA' CHUNK ONLINE STORAGE 8192 PCTVERSION 10 NOCACHE RECORD TABLESPACE 19 (INITIAL 65536 THEN 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645 PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 DEFAULT USER_TABLES)
    (20);

    Table created.

    SQL > CREATE the SEQUENCE "MOBILE". "' AUDIT_LOG_SEQ ' INCREMENT BY 1 START WITH 1000 CACHE 20 NOCYCLE.

    Order of creation.

    SQL > create or replace
    TRIGGER "MOBILE". "' AUDIT_LOG_TRGR ' front
    INSERT in 'AUDIT_LOG' for EACH row BEGIN if insertion THEN if: NEW. "' AUDIT_LOG_ID ' IS NULL THEN
    SELECT AUDIT_LOG_SEQ.nextval
    IN: NEW. "" AUDIT_LOG_ID ".
    DOUBLE;
    END IF;
    END IF;
    END;

    We already checked that AUDIT_LOG exists.

    AUDIT_LOG exists for schema MOBILE, but NOT for the scheme which tries to create the trigger.

    INSERT in 'AUDIT_LOG' for EACH row BEGIN if insertion THEN if: NEW. "' AUDIT_LOG_ID ' IS NULL THEN

    not like above, but as below
    INSERT ON MOBILE. AUDIT_LOG FOR EACH row BEGIN if insertion THEN if: NEW. "' AUDIT_LOG_ID ' IS NULL THEN

  • What is the trigger of the IOM process?

    What is trigger in IOM process? Please explain briefly? How to create the trigger custom?


    Thank you

    What is the trigger of the IOM process

    He decided to "what tasks must get triggered on the evolution of the field in the IOM user profile." Logic is already implemented in IOM and this requires a small configuration to add new triggers.

    Just to add a little thing in the commentary of Suren:

    You will find entries as in the research

    USR_LAST_NAME - Name of the task (task any name)

    It means so whenever there is change in the user's last name (USR_LAST_NAME) in the IOM then it will trigger all these tasks that are mapped in the search. You can have more than one task for the same domain.

    USR_LAST_NAME - Task1 (any task name)
    USR_LAST_NAME - Task2 (any task name)

    Suern shared the steps for the creation of new triggers.

  • Error PLS-00103 when you try to create a trigger

    Hello people,

    I am trying to create a trigger, but I encounter this error saying that Oracle waited a ';' but found support "(" on line 7. I have yet to find what is the problem. It would be much appreciated if someone could one give me a clue on this. As a result the code used to create the trigger.

    CREATE OR REPLACE TRIGGER TriggerIns BEFORE INSERT OR update ON registration
    FOR EACH LINE
    DECLARE
    NUM INTEGER;
    BEGIN
    IF: new.ni < 1000 THEN
    SELECT COUNT (*) IN the number OF athletes WHERE ns =: new.ni;
    IF num = 0 THEN
    REVIVAL (abandonment, 'foreign key violation');
    END IF;
    END IF;

    IF: new.ni > 1000 THEN
    COUNT (*) of SELECT INTO num From teams WHERE nequipe =: new.ni;
    IF num = 0 THEN
    REVIVAL (abandonment, 'foreign key violation');
    END IF;
    END IF;
    EXCEPTION
    END;

    Thanks in advance

    Sebastian

    user2019788 wrote:
    Hello people,

    I am trying to create a trigger, but I encounter this error saying that Oracle waited a ';' but found support "(" on line 7. I have yet to find what is the problem. It would be much appreciated if someone could one give me a clue on this. As a result the code used to create the trigger.

    CREATE OR REPLACE TRIGGER TriggerIns BEFORE INSERT OR update ON registration
    FOR EACH LINE
    DECLARE
    NUM INTEGER;
    BEGIN
    IF: new.ni< 1000="">
    SELECT COUNT (*) IN the number OF athletes WHERE ns =: new.ni;
    IF num = 0 THEN
    REVIVAL (abandonment, 'foreign key violation');
    END IF;
    END IF;

    IF: new.ni > 1000 THEN
    COUNT (*) of SELECT INTO num From teams WHERE nequipe =: new.ni;
    IF num = 0 THEN
    REVIVAL (abandonment, 'foreign key violation');
    END IF;
    END IF;
    EXCEPTION
    END;

    Thanks in advance

    Sebastian

    Don't know why he complains of line 7 but your RECOVERY declaration syntax is incorrect. I think what you want instead of "RAISE" is "RAISE_APPLICATION_ERROR. You should also put something between the EXCEPTION and the END or remove the "EXCEPTION".

     CREATE OR REPLACE TRIGGER TriggerIns BEFORE INSERT OR UPDATE ON Inscriptions
       FOR EACH ROW
       DECLARE
         num INTEGER;
       BEGIN
         IF :new.ni < 1000 THEN
           SELECT COUNT(*) INTO num FROM Sportifs WHERE ns = :new.ni;
           IF num = 0 THEN
             RAISE_APPLICATION_ERROR(-20101,'foreign key violation');
           END IF;
         END IF;
    
         IF :new.ni > 1000 THEN
           SELECT COUNT(*) INTO num From Equipes WHERE nequipe = :new.ni;
           IF num = 0 THEN
             RAISE_APPLICATION_ERROR(-20101,'foreign key violation');
           END IF;
         END IF;
    --   EXCEPTION
    --     WHEN OTHERS THEN RAISE;
       END;
    
  • What is the trigger in the profile of the AAU and how to create it?

    Hello

    I created metadata for the vacation request (employee name - type holiday...) and I created a rule containing these metadata. But when I create a profile for this rule I can not select the appropriate trigger, it seems that she in the next photo. And I do not know what is the trigger element and how to create one for my rule, and my profile.

    Thank youtrigger.PNG

    1. in ConfigMgr - InformationFields find which option list is used for xIdcProfile. Change the option list (either directly, or in ConfigMgr - view (s), if they come from a table) to add a new trigger to profile value.

    2. in ConfigMgr - profile add a new profile with the new value of the trigger

    This will create a new profile without rules. Assign no global rules for profiles of school boards - it might work, but it is somewhat confusing and very probably will have side effects. A global rule is a rule that is applied to all elements regardless their profiles (even for items without profile create via the standard checkin).

Maybe you are looking for