Home » SQL & PL/SQL » SQL & PL/SQL » Create a trigger to call a procedure (Oracle Database 11.2.0.3)
Create a trigger to call a procedure [message #650061] Wed, 13 April 2016 16:13 Go to next message
Nagesh1985
Messages: 10
Registered: April 2016
Junior Member
I would like to create a trigger to check for a condition on a table and then call a procedure

Table EMP:
 Name                                      Null?    Type
 ----------------------------------------- -------- ----------------------------
 ACTION_LEVEL_KEY                          NOT NULL VARCHAR2(50)
 ACTION_LEVEL_ID                           NOT NULL NUMBER(10)
 DTACTDATEKEY                              NOT NULL TIMESTAMP(3)
 TDDATEKEY                                          VARCHAR2(21)
 NREVID                                             NUMBER(10)
 LACTIONID                                          NUMBER(10)
 LACTIONTYPE                                        NUMBER(10)
 LSTATE                                             NUMBER(10)
 LSTATUS                                            NUMBER(10)
 SACTACTION                                         NUMBER(10)
 SACTNOTES                                          NVARCHAR2(255)
 SACTNOTES2                                         NVARCHAR2(255)
 LD_QUEID                                           NUMBER(10)
 SREASON_CODE                                       NVARCHAR2(5)


Procedure PP_CLEANUP:
  CREATE OR REPLACE PROCEDURE "PP_CLEANUP" (v_ACTION_LEVEL_KEY   IN VARCHAR2,
        v_ACTION_LEVEL_ID    IN NUMBER,
        v_STARTTIME         IN TIMESTAMP,
        v_ENDTIME           IN TIMESTAMP)
as
BEGIN
   DELETE ALERTS
   WHERE DD_DATE BETWEEN v_STARTTIME AND v_ENDTIME
   AND ACTION_LEVEL_KEY = v_ACTION_LEVEL_KEY
   AND ACTION_LEVEL_ID = v_ACTION_LEVEL_ID;

END;


The trigger to should for the condition where SACTNOTES on EMP table contains 'SAMPLE' after each insert and delete and then call the procedure PP_CLEANUP

*BlackSwan corrected {code} tags

[Updated on: Wed, 13 April 2016 16:27] by Moderator

Report message to a moderator

Re: Create a trigger to call a procedure [message #650062 is a reply to message #650061] Wed, 13 April 2016 16:29 Go to previous messageGo to next message
BlackSwan
Messages: 26766
Registered: January 2009
Location: SoCal
Senior Member
Welcome to this forum.

https://www.google.com/webhp?hl=en&tab=ww#hl=en&q=oracle+trigger+example
Re: Create a trigger to call a procedure [message #650063 is a reply to message #650062] Wed, 13 April 2016 17:34 Go to previous messageGo to next message
Nagesh1985
Messages: 10
Registered: April 2016
Junior Member
The error that I got

CREATE OR REPLACE TRIGGER TEST_RECVID
AFTER INSERT ON EMP
FOR EACH ROW
WHEN (NEW.SACTNOTES LIKE '%DELETE ALERTS%')
DECLARE
V_ACTION_LEVEL_KEY VARCHAR2;
V_ACTION_LEVEL_ID NUMBER;
V_STARTTIME TIMESTAMP;
V_ENDTIME TIMESTAMP;
BEGIN
PP_CLEANUP();
END;
/

Error message:

LINE/COL ERROR
-------- -----------------------------------------------------------------
2/20     PLS-00215: String length constraints must be in range (1 ..
         32767)

7/1      PL/SQL: Statement ignored
7/1      PLS-00306: wrong number or types of arguments in call to
         'PP_CLEANUP'

*Please learn how to use {code} tags correctly

[Updated on: Wed, 13 April 2016 18:59] by Moderator

Report message to a moderator

Re: Create a trigger to call a procedure [message #650064 is a reply to message #650063] Wed, 13 April 2016 19:01 Go to previous messageGo to next message
BlackSwan
Messages: 26766
Registered: January 2009
Location: SoCal
Senior Member
>V_ACTION_LEVEL_KEY VARCHAR2;
VARCHAR2(<length>) is required

>PP_CLEANUP();
procedure is defined to have 4 parameters so it must be called with 4.
Re: Create a trigger to call a procedure [message #650079 is a reply to message #650064] Thu, 14 April 2016 08:29 Go to previous message
Bill B
Messages: 1971
Registered: December 2004
Senior Member
Just curious, why did you make a procedure to do the delete when the delete statement could have been put into the trigger it's self?
Previous Topic: Data count for Likert Scale
Next Topic: sort problem with decimal
Goto Forum:
  


Current Time: Sun Jun 30 16:00:02 CDT 2024