Thank you folks

I feel the idea what Thomas suggested will serve my purpose .Because I
need to do the update for an upgrade so I will be the only user :-) .

Let us make it simple





On Sep 18, 9:27 am, "Rob Wolfe" <[EMAIL PROTECTED]> wrote:
> Yup it is .... but I write so little actual code nowadays that I had
> forgotten about it ...
>
> how quickly we get rusty
>
>
>
> On Thu, September 18, 2008 09:11, Thomas Olszewicki wrote:
>
> > On Sep 17, 4:30 pm, "Rob Wolfe" <[EMAIL PROTECTED]> wrote:
> >> On Wed, September 17, 2008 15:34, Thomas Olszewicki wrote:
>
> >> > On Sep 17, 11:28 am, oracle <[EMAIL PROTECTED]> wrote:
> >> >> Hello,
>
> >> >> I need to disable a trigger when running a stored procedure. When it
> >> >> finishes, trigger should be enable again.
>
> >> >> I try:
>
> >> >>    BEGIN
> >> >>       ALTER TRIGGER MyTrigger DISABLE;
>
> >> >>       -- Some update code
>
> >> >>     ALTER TRIGGER MyTrigger ENABLE;
> >> >> END ;
>
> >> > You cannot use DDL inside pl/sql blok or stored procedure.
> >> > You would have to use dynamic sql:
> >> > BEGIN
> >> >       EXECUTE IMMEDIATE 'ALTER TRIGGER MyTrigger DISABLE';
> >> >       ...
> >> >       EXECUTE IMMEDIATE 'ALTER TRIGGER MyTrigger ENABLE';
> >> > END;
> >> > But, I think this is realy bad idea,
> >> > unless you are sure you are the only user of this database.
> >> > As soon as you disable this trigger in your stored procedure
> >> > it will be 'inactive' for all other sessions.
> >> > What you really want to do is to disable this trigger only for your
> >> > session.
> >> > I may require to modify MyTrigger itself.
>
> >> > Step 1:
> >> > Create package MyPackage with static variable and set/get methods for
> >> > this variable.
> >> > Set default value of this variable to true.
> >> > Example: name the methods : setFlag/getFlag
>
> >> > Step 2:
> >> > Add to MyTrigger a condition depending on value of the variable from
> >> > package MyPackage.
> >> > If the value of this variable is set to false, don't execute content
> >> > of the trigger.
> >> > Example:
> >> >    CREATE OR REPLACE TRIGGER MyTrigger
> >> >     ...
> >> >    BEGIN
> >> >       IF MyPackage.getFlag THEN
> >> >         ...
> >> >       END IF;
> >> >    END;
>
> >> > Step 3:
> >> > in your stored procedure call:
> >> >    BEGIN
> >> >       MyPackage.setFlag(false); -- "disable" trigger
> >> >       ...
> >> >       MyPackage.setFlag(true); -- "enable" trigger
> >> >    END;
>
> >> > HTH
> >> > Thomas
>
> >> Thomas that is a terrific solution!- Hide quoted text -
>
> >> - Show quoted text -
> > Rob,
> > "terrific", thx
> > Isn't this model used widely?
> > Thomas- Hide quoted text -
>
> - Show quoted text -

--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google
Groups "Oracle PL/SQL" group.
To post to this group, send email to Oracle-PLSQL@googlegroups.com
To unsubscribe from this group, send email to
[EMAIL PROTECTED]
For more options, visit this group at
http://groups.google.com/group/Oracle-PLSQL?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to