Is there a way to create multiple triggers in one script?

23,062

Solution 1

Add a forward slash on a new line after each trigger to execute the command in the buffer:

create trigger...
...
end;
/

Solution 2

Put a slash '/' as the first character on a blank line between each trigger statement. This is the SQL*PLUS equivalent of 'go'.

Share:
23,062

Related videos on Youtube

Kamron K.
Author by

Kamron K.

The end of one journey marks the point in which one is ready to see the world in which it really exists. Be not afraid, and come what may.

Updated on September 16, 2020

Comments

  • Kamron K.
    Kamron K. over 3 years

    I am trying to create multiple triggers with only uploading one script into an Oracle DB / APEX workspace, and running it once.

    Here is a brief script compared to the one im trying to use:

        create or replace trigger "BI_TEC_ROLES"   
          before insert on "TEC_ROLES"               
          for each row  
        begin   
          if :NEW."ROLE_ID" is null then 
            select "TEC_ROLES_SEQ".nextval into :NEW."ROLE_ID" from dual; 
          end if; 
        end; 
    
        create or replace trigger "BI_TEC_STATUSES"   
          before insert on "TEC_STATUSES"               
          for each row  
        begin   
          if :NEW."STATUS_ID" is null then 
            select "TEC_STATUSES_SEQ".nextval into :NEW."STATUS_ID" from dual; 
          end if; 
        end; 
    
        create or replace trigger "BI_TEC_SUBS"   
          before insert on "TEC_SUBS"               
          for each row  
        begin   
          if :NEW."SUB_ID" is null then 
            select "TEC_SUBS_SEQ".nextval into :NEW."SUB_ID" from dual; 
          end if; 
        end; 
    

    I have tried putting GO in between each individual block, but still only creates the first trigger then gives me an error for the second saying:

        Error(7,1): PLS-00103: Encountered the symbol "CREATE" 
    

    I am hoping that it is possible to do this. Thank you very much for your time and interest =)

  • Kamron K.
    Kamron K. over 12 years
    Awesome! Works when running the script in APEX (after uploading it of course), but acted funny in SQL Developer?? Oh well, Thank You!!!
  • Kamron K.
    Kamron K. over 12 years
    Awesome! Works when running the script in APEX (after uploading it of course), but acted funny in SQL Developer?? Oh well, Thank You!!!
  • Wolf
    Wolf over 12 years
    @Kamron K., In SQL Developer you would need to click the "Run Script (F5)" button to create all of your triggers (not the main "Run Statement" button).
  • Martin Tournoij
    Martin Tournoij over 6 years
    I'm confused how this is an answer to the asked question?