Army wrote:
Thank you for the reply, Kristian. Dan also replied to my email with an explanation of what was happening to cause this error (thanks, Dan!)--maybe he answered your questions in the process?

In my case, the failing statement was a trigger. My guess is that the trigger was compiled against the old code (happened to be 10.2, but could be anything before r496645 I think), and when it is "retrieved" and executed the constructor it is calling no longer exist (signature has changed).

Based on Dan's description of the problem I would think that a 10.2 trigger should still succeed with the latest trunk (because there is a version difference and thus the trigger's SPS should get recompiled)--unless I'm misunderstanding something there? Are you sure the trigger that is failing was a 10.2 trigger and not a 10.3 (pre svn #496645) one?

Just to be clear it's not when a trigger (or any stored plan) was originally created, but the version of database engine when the stored plan was last compiled. Any boot of an engine will mark all stored plans as needing recompile if the engine version is different to the last engine that booted the version.

So one potential for Kristian's scenario is:

1) create trigger on 10.2

2) boot with 10.3.0.0 (pre 496645) and call trigger
   (trigger will be recompiled)

3) boot with 10.3.0.0 (post 496645) and call trigger
   (trigger will not recompiled but relies on code signatures pre-496645).

Dan.

Reply via email to