<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ru">
		<id>http://sqle.ru/index.php?action=history&amp;feed=atom&amp;title=Oracle_PL%2FSQL%2FTrigger%2FTrigger_Firing</id>
		<title>Oracle PL/SQL/Trigger/Trigger Firing - История изменений</title>
		<link rel="self" type="application/atom+xml" href="http://sqle.ru/index.php?action=history&amp;feed=atom&amp;title=Oracle_PL%2FSQL%2FTrigger%2FTrigger_Firing"/>
		<link rel="alternate" type="text/html" href="http://sqle.ru/index.php?title=Oracle_PL/SQL/Trigger/Trigger_Firing&amp;action=history"/>
		<updated>2026-05-25T22:47:18Z</updated>
		<subtitle>История изменений этой страницы в вики</subtitle>
		<generator>MediaWiki 1.30.0</generator>

	<entry>
		<id>http://sqle.ru/index.php?title=Oracle_PL/SQL/Trigger/Trigger_Firing&amp;diff=1609&amp;oldid=prev</id>
		<title> в 13:45, 26 мая 2010</title>
		<link rel="alternate" type="text/html" href="http://sqle.ru/index.php?title=Oracle_PL/SQL/Trigger/Trigger_Firing&amp;diff=1609&amp;oldid=prev"/>
				<updated>2010-05-26T13:45:19Z</updated>
		
		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left&quot; data-mw=&quot;interface&quot;&gt;
				&lt;tr style=&quot;vertical-align: top;&quot; lang=&quot;ru&quot;&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;← Предыдущая&lt;/td&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;Версия 13:45, 26 мая 2010&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; style=&quot;text-align: center;&quot; lang=&quot;ru&quot;&gt;&lt;div class=&quot;mw-diff-empty&quot;&gt;(нет различий)&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</summary>
			</entry>

	<entry>
		<id>http://sqle.ru/index.php?title=Oracle_PL/SQL/Trigger/Trigger_Firing&amp;diff=1610&amp;oldid=prev</id>
		<title>Admin: 1 версия</title>
		<link rel="alternate" type="text/html" href="http://sqle.ru/index.php?title=Oracle_PL/SQL/Trigger/Trigger_Firing&amp;diff=1610&amp;oldid=prev"/>
				<updated>2010-05-26T09:58:21Z</updated>
		
		<summary type="html">&lt;p&gt;1 версия&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Новая страница&lt;/b&gt;&lt;/p&gt;&lt;div&gt;==Avoid the mutating table error.==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;sql&amp;quot;&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; CREATE TABLE lecturer (&lt;br /&gt;
  2    id               NUMBER(5) PRIMARY KEY,&lt;br /&gt;
  3    first_name       VARCHAR2(20),&lt;br /&gt;
  4    last_name        VARCHAR2(20),&lt;br /&gt;
  5    major            VARCHAR2(30),&lt;br /&gt;
  6    current_credits  NUMBER(3)&lt;br /&gt;
  7    );&lt;br /&gt;
Table created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; INSERT INTO lecturer (id, first_name, last_name, major,current_credits)&lt;br /&gt;
  2                VALUES (10001, &amp;quot;Scott&amp;quot;, &amp;quot;Lawson&amp;quot;,&amp;quot;Computer Science&amp;quot;, 11);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; INSERT INTO lecturer (id, first_name, last_name, major, current_credits)&lt;br /&gt;
  2                VALUES (10002, &amp;quot;Mar&amp;quot;, &amp;quot;Wells&amp;quot;,&amp;quot;History&amp;quot;, 4);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; INSERT INTO lecturer (id, first_name, last_name, major,current_credits)&lt;br /&gt;
  2                VALUES (10003, &amp;quot;Jone&amp;quot;, &amp;quot;Bliss&amp;quot;,&amp;quot;Computer Science&amp;quot;, 8);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; INSERT INTO lecturer (id, first_name, last_name, major,current_credits)&lt;br /&gt;
  2                VALUES (10004, &amp;quot;Man&amp;quot;, &amp;quot;Kyte&amp;quot;,&amp;quot;Economics&amp;quot;, 8);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; INSERT INTO lecturer (id, first_name, last_name, major,current_credits)&lt;br /&gt;
  2                VALUES (10005, &amp;quot;Pat&amp;quot;, &amp;quot;Poll&amp;quot;,&amp;quot;History&amp;quot;, 4);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; INSERT INTO lecturer (id, first_name, last_name, major,current_credits)&lt;br /&gt;
  2                VALUES (10006, &amp;quot;Tim&amp;quot;, &amp;quot;Viper&amp;quot;,&amp;quot;History&amp;quot;, 4);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; INSERT INTO lecturer (id, first_name, last_name, major,current_credits)&lt;br /&gt;
  2                VALUES (10007, &amp;quot;Barbara&amp;quot;, &amp;quot;Blues&amp;quot;,&amp;quot;Economics&amp;quot;, 7);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; INSERT INTO lecturer (id, first_name, last_name, major,current_credits)&lt;br /&gt;
  2                VALUES (10008, &amp;quot;David&amp;quot;, &amp;quot;Large&amp;quot;,&amp;quot;Music&amp;quot;, 4);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; INSERT INTO lecturer (id, first_name, last_name, major,current_credits)&lt;br /&gt;
  2                VALUES (10009, &amp;quot;Chris&amp;quot;, &amp;quot;Elegant&amp;quot;,&amp;quot;Nutrition&amp;quot;, 8);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; INSERT INTO lecturer (id, first_name, last_name, major,current_credits)&lt;br /&gt;
  2                VALUES (10010, &amp;quot;Rose&amp;quot;, &amp;quot;Bond&amp;quot;,&amp;quot;Music&amp;quot;, 7);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; INSERT INTO lecturer (id, first_name, last_name, major,current_credits)&lt;br /&gt;
  2                VALUES (10011, &amp;quot;Rita&amp;quot;, &amp;quot;Johnson&amp;quot;,&amp;quot;Nutrition&amp;quot;, 8);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; INSERT INTO lecturer (id, first_name, last_name, major,current_credits)&lt;br /&gt;
  2                VALUES (10012, &amp;quot;Sharon&amp;quot;, &amp;quot;Clear&amp;quot;,&amp;quot;Computer Science&amp;quot;, 3);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; CREATE OR REPLACE PACKAGE StudentData AS&lt;br /&gt;
  2    TYPE t_Majors IS TABLE OF lecturer.major%TYPE&lt;br /&gt;
  3      INDEX BY BINARY_INTEGER;&lt;br /&gt;
  4    TYPE t_IDs IS TABLE OF lecturer.ID%TYPE&lt;br /&gt;
  5      INDEX BY BINARY_INTEGER;&lt;br /&gt;
  6&lt;br /&gt;
  7    myLecturerMajors t_Majors;&lt;br /&gt;
  8    myLecturerIDs    t_IDs;&lt;br /&gt;
  9    v_NumEntries    BINARY_INTEGER := 0;&lt;br /&gt;
 10  END StudentData;&lt;br /&gt;
 11  /&lt;br /&gt;
Package created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; CREATE OR REPLACE TRIGGER RLimitMajors&lt;br /&gt;
  2    BEFORE INSERT OR UPDATE OF major ON lecturer&lt;br /&gt;
  3    FOR EACH ROW&lt;br /&gt;
  4  BEGIN&lt;br /&gt;
  5    StudentData.v_NumEntries := StudentData.v_NumEntries + 1;&lt;br /&gt;
  6    StudentData.myLecturerMajors(StudentData.v_NumEntries) :=&lt;br /&gt;
  7      :new.major;&lt;br /&gt;
  8    StudentData.myLecturerIDs(StudentData.v_NumEntries) := :new.id;&lt;br /&gt;
  9  END RLimitMajors;&lt;br /&gt;
 10  /&lt;br /&gt;
Trigger created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; CREATE OR REPLACE TRIGGER SLimitMajors&lt;br /&gt;
  2    AFTER INSERT OR UPDATE OF major ON lecturer&lt;br /&gt;
  3  DECLARE&lt;br /&gt;
  4    studentMax     CONSTANT NUMBER := 5;&lt;br /&gt;
  5    studentCount      NUMBER;&lt;br /&gt;
  6    myLecturerID       lecturer.ID%TYPE;&lt;br /&gt;
  7    v_Major           lecturer.major%TYPE;&lt;br /&gt;
  8  BEGIN&lt;br /&gt;
  9    FOR v_LoopIndex IN 1..StudentData.v_NumEntries LOOP&lt;br /&gt;
 10      myLecturerID := StudentData.myLecturerIDs(v_LoopIndex);&lt;br /&gt;
 11      v_Major := StudentData.myLecturerMajors(v_LoopIndex);&lt;br /&gt;
 12&lt;br /&gt;
 13      SELECT COUNT(*)&lt;br /&gt;
 14        INTO studentCount&lt;br /&gt;
 15        FROM lecturer&lt;br /&gt;
 16        WHERE major = v_Major;&lt;br /&gt;
 17&lt;br /&gt;
 18      IF studentCount &amp;gt; studentMax THEN&lt;br /&gt;
 19        RAISE_APPLICATION_ERROR(-20000,&lt;br /&gt;
 20          &amp;quot;Too many lecturer for major &amp;quot; || v_Major ||&lt;br /&gt;
 21          &amp;quot; because of student &amp;quot; || myLecturerID);&lt;br /&gt;
 22      END IF;&lt;br /&gt;
 23    END LOOP;&lt;br /&gt;
 24&lt;br /&gt;
 25    StudentData.v_NumEntries := 0;&lt;br /&gt;
 26  END SLimitMajors;&lt;br /&gt;
 27  /&lt;br /&gt;
Trigger created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; UPDATE lecturer&lt;br /&gt;
  2    SET major = &amp;quot;History&amp;quot;&lt;br /&gt;
  3    WHERE ID = 10003;&lt;br /&gt;
1 row updated.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; UPDATE lecturer&lt;br /&gt;
  2    SET major = &amp;quot;History&amp;quot;&lt;br /&gt;
  3    WHERE ID = 10002;&lt;br /&gt;
1 row updated.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; UPDATE lecturer&lt;br /&gt;
  2    SET major = &amp;quot;History&amp;quot;&lt;br /&gt;
  3    WHERE ID = 10009;&lt;br /&gt;
1 row updated.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; drop table lecturer;&lt;br /&gt;
Table dropped.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
 &amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Order of trigger firing.==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;sql&amp;quot;&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; CREATE TABLE session (&lt;br /&gt;
  2    department       CHAR(3),&lt;br /&gt;
  3    course           NUMBER(3),&lt;br /&gt;
  4    description      VARCHAR2(2000),&lt;br /&gt;
  5    max_lecturer     NUMBER(3),&lt;br /&gt;
  6    current_lecturer NUMBER(3),&lt;br /&gt;
  7    num_credits      NUMBER(1),&lt;br /&gt;
  8    room_id          NUMBER(5)&lt;br /&gt;
  9    );&lt;br /&gt;
Table created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; INSERT INTO session(department, course, description, max_lecturer, current_lecturer, num_credits, room_id)&lt;br /&gt;
  2              VALUES (&amp;quot;HIS&amp;quot;, 101, &amp;quot;History 101&amp;quot;, 30, 11, 4, 20000);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; INSERT INTO session(department, course, description, max_lecturer, current_lecturer, num_credits, room_id)&lt;br /&gt;
  2              VALUES (&amp;quot;HIS&amp;quot;, 301, &amp;quot;History 301&amp;quot;, 30, 0, 4, 20004);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; INSERT INTO session(department, course, description, max_lecturer, current_lecturer, num_credits, room_id)&lt;br /&gt;
  2              VALUES (&amp;quot;CS&amp;quot;, 101, &amp;quot;Computer Science 101&amp;quot;, 50, 0, 4, 20001);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; INSERT INTO session(department, course, description, max_lecturer, current_lecturer, num_credits, room_id)&lt;br /&gt;
  2              VALUES (&amp;quot;ECN&amp;quot;, 203, &amp;quot;Economics 203&amp;quot;, 15, 0, 3, 20002);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; INSERT INTO session(department, course, description, max_lecturer, current_lecturer, num_credits, room_id)&lt;br /&gt;
  2              VALUES (&amp;quot;CS&amp;quot;, 102, &amp;quot;Computer Science 102&amp;quot;, 35, 3, 4, 20003);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; INSERT INTO session(department, course, description, max_lecturer, current_lecturer, num_credits, room_id)&lt;br /&gt;
  2              VALUES (&amp;quot;MUS&amp;quot;, 410, &amp;quot;Music 410&amp;quot;, 5, 4, 3, 20005);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; INSERT INTO session(department, course, description, max_lecturer, current_lecturer, num_credits, room_id)&lt;br /&gt;
  2              VALUES (&amp;quot;ECN&amp;quot;, 101, &amp;quot;Economics 101&amp;quot;, 50, 0, 4, 20007);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; INSERT INTO session(department, course, description, max_lecturer, current_lecturer, num_credits, room_id)&lt;br /&gt;
  2              VALUES (&amp;quot;NUT&amp;quot;, 307, &amp;quot;Nutrition 307&amp;quot;, 20, 2, 4, 20008);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; INSERT INTO session(department, course, description, max_lecturer, current_lecturer, num_credits, room_id)&lt;br /&gt;
  2              VALUES (&amp;quot;MUS&amp;quot;, 100, &amp;quot;Music 100&amp;quot;, 100, 0, 3, NULL);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; CREATE TABLE MyTable (&lt;br /&gt;
  2    num_col    NUMBER,&lt;br /&gt;
  3    char_col   VARCHAR2(60)&lt;br /&gt;
  4    );&lt;br /&gt;
Table created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; CREATE SEQUENCE trig_seq&lt;br /&gt;
  2    START WITH 1&lt;br /&gt;
  3    INCREMENT BY 1;&lt;br /&gt;
Sequence created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; CREATE OR REPLACE PACKAGE TrigPackage AS&lt;br /&gt;
  2    v_Counter NUMBER;&lt;br /&gt;
  3  END TrigPackage;&lt;br /&gt;
  4  /&lt;br /&gt;
Package created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; CREATE OR REPLACE TRIGGER sessionBeforeUpdate&lt;br /&gt;
  2    BEFORE UPDATE ON session&lt;br /&gt;
  3  BEGIN&lt;br /&gt;
  4    TrigPackage.v_Counter := 0;&lt;br /&gt;
  5&lt;br /&gt;
  6    INSERT INTO MyTable (num_col, char_col)&lt;br /&gt;
  7      VALUES (trig_seq.NEXTVAL,&lt;br /&gt;
  8        &amp;quot;Before Statement: counter = &amp;quot; || TrigPackage.v_Counter);&lt;br /&gt;
  9&lt;br /&gt;
 10    TrigPackage.v_Counter := TrigPackage.v_Counter + 1;&lt;br /&gt;
 11  END sessionBeforeUpdate;&lt;br /&gt;
 12  /&lt;br /&gt;
Trigger created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; CREATE OR REPLACE TRIGGER sessionAfterStatement1&lt;br /&gt;
  2    AFTER UPDATE ON session&lt;br /&gt;
  3  BEGIN&lt;br /&gt;
  4    INSERT INTO MyTable (num_col, char_col)&lt;br /&gt;
  5      VALUES (trig_seq.NEXTVAL,&lt;br /&gt;
  6        &amp;quot;After Statement 1: counter = &amp;quot; || TrigPackage.v_Counter);&lt;br /&gt;
  7&lt;br /&gt;
  8    TrigPackage.v_Counter := TrigPackage.v_Counter + 1;&lt;br /&gt;
  9  END sessionAfterStatement1;&lt;br /&gt;
 10  /&lt;br /&gt;
Trigger created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; CREATE OR REPLACE TRIGGER sessionAfterStatement2&lt;br /&gt;
  2    AFTER UPDATE ON session&lt;br /&gt;
  3  BEGIN&lt;br /&gt;
  4    INSERT INTO MyTable (num_col, char_col)&lt;br /&gt;
  5      VALUES (trig_seq.NEXTVAL,&amp;quot;After Statement 2: counter = &amp;quot; || TrigPackage.v_Counter);&lt;br /&gt;
  6&lt;br /&gt;
  7    TrigPackage.v_Counter := TrigPackage.v_Counter + 1;&lt;br /&gt;
  8  END sessionAfterStatement2;&lt;br /&gt;
  9  /&lt;br /&gt;
Trigger created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; CREATE OR REPLACE TRIGGER sessionBeforeRow1&lt;br /&gt;
  2    BEFORE UPDATE ON session&lt;br /&gt;
  3    FOR EACH ROW&lt;br /&gt;
  4  BEGIN&lt;br /&gt;
  5    INSERT INTO MyTable (num_col, char_col)&lt;br /&gt;
  6      VALUES (trig_seq.NEXTVAL,&lt;br /&gt;
  7        &amp;quot;Before Row 1: counter = &amp;quot; || TrigPackage.v_Counter);&lt;br /&gt;
  8&lt;br /&gt;
  9    -- Increment for the next trigger.&lt;br /&gt;
 10    TrigPackage.v_Counter := TrigPackage.v_Counter + 1;&lt;br /&gt;
 11  END sessionBeforeRow1;&lt;br /&gt;
 12  /&lt;br /&gt;
Trigger created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; CREATE OR REPLACE TRIGGER sessionBeforeRow2&lt;br /&gt;
  2    BEFORE UPDATE ON session&lt;br /&gt;
  3    FOR EACH ROW&lt;br /&gt;
  4  BEGIN&lt;br /&gt;
  5    INSERT INTO MyTable (num_col, char_col)&lt;br /&gt;
  6      VALUES (trig_seq.NEXTVAL,&lt;br /&gt;
  7        &amp;quot;Before Row 2: counter = &amp;quot; || TrigPackage.v_Counter);&lt;br /&gt;
  8&lt;br /&gt;
  9    TrigPackage.v_Counter := TrigPackage.v_Counter + 1;&lt;br /&gt;
 10  END sessionBeforeRow2;&lt;br /&gt;
 11  /&lt;br /&gt;
Trigger created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; CREATE OR REPLACE TRIGGER sessionBeforeRow3&lt;br /&gt;
  2    BEFORE UPDATE ON session&lt;br /&gt;
  3    FOR EACH ROW&lt;br /&gt;
  4  BEGIN&lt;br /&gt;
  5    INSERT INTO MyTable (num_col, char_col)&lt;br /&gt;
  6      VALUES (trig_seq.NEXTVAL,&lt;br /&gt;
  7        &amp;quot;Before Row 3: counter = &amp;quot; || TrigPackage.v_Counter);&lt;br /&gt;
  8&lt;br /&gt;
  9    TrigPackage.v_Counter := TrigPackage.v_Counter + 1;&lt;br /&gt;
 10  END sessionBeforeRow3;&lt;br /&gt;
 11  /&lt;br /&gt;
Trigger created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; CREATE OR REPLACE TRIGGER sessionAfterRow&lt;br /&gt;
  2    AFTER UPDATE ON session&lt;br /&gt;
  3    FOR EACH ROW&lt;br /&gt;
  4  BEGIN&lt;br /&gt;
  5    INSERT INTO MyTable (num_col, char_col)&lt;br /&gt;
  6      VALUES (trig_seq.NEXTVAL,&lt;br /&gt;
  7        &amp;quot;After Row: counter = &amp;quot; || TrigPackage.v_Counter);&lt;br /&gt;
  8&lt;br /&gt;
  9    TrigPackage.v_Counter := TrigPackage.v_Counter + 1;&lt;br /&gt;
 10  END sessionAfterRow;&lt;br /&gt;
 11  /&lt;br /&gt;
Trigger created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; DELETE FROM MyTable;&lt;br /&gt;
0 rows deleted.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; UPDATE session&lt;br /&gt;
  2    SET num_credits = 4&lt;br /&gt;
  3    WHERE department IN (&amp;quot;HIS&amp;quot;, &amp;quot;CS&amp;quot;);&lt;br /&gt;
4 rows updated.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; SELECT *&lt;br /&gt;
  2    FROM MyTable&lt;br /&gt;
  3    ORDER BY num_col;&lt;br /&gt;
   NUM_COL CHAR_COL&lt;br /&gt;
---------- ------------------------------------------------------------&lt;br /&gt;
         1 Before Statement: counter = 0&lt;br /&gt;
         2 Before Row 3: counter = 1&lt;br /&gt;
         3 Before Row 2: counter = 2&lt;br /&gt;
         4 Before Row 1: counter = 3&lt;br /&gt;
         5 After Row: counter = 4&lt;br /&gt;
         6 Before Row 3: counter = 5&lt;br /&gt;
         7 Before Row 2: counter = 6&lt;br /&gt;
         8 Before Row 1: counter = 7&lt;br /&gt;
         9 After Row: counter = 8&lt;br /&gt;
        10 Before Row 3: counter = 9&lt;br /&gt;
        11 Before Row 2: counter = 10&lt;br /&gt;
   NUM_COL CHAR_COL&lt;br /&gt;
---------- ------------------------------------------------------------&lt;br /&gt;
        12 Before Row 1: counter = 11&lt;br /&gt;
        13 After Row: counter = 12&lt;br /&gt;
        14 Before Row 3: counter = 13&lt;br /&gt;
        15 Before Row 2: counter = 14&lt;br /&gt;
        16 Before Row 1: counter = 15&lt;br /&gt;
        17 After Row: counter = 16&lt;br /&gt;
        18 After Statement 2: counter = 17&lt;br /&gt;
        19 After Statement 1: counter = 18&lt;br /&gt;
19 rows selected.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; DROP SEQUENCE trig_seq;&lt;br /&gt;
Sequence dropped.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; drop table mytable;&lt;br /&gt;
Table dropped.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; drop table session;&lt;br /&gt;
Table dropped.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
 &amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Admin</name></author>	</entry>

	</feed>