I have a function which uses execute to populate the value of a variable based on a defined select construct.

The relevant part of the code looks like thus:
   EXECUTE curr_query INTO curr_amount;
   RAISE NOTICE '%',curr_amount;
   IF NOT FOUND THEN
      curr_amount=0;
   END IF;
   RAISE NOTICE '%',curr_amount;

I've added the if found to trap if nothing is returned by the execute so that the value gets set to a default 0 rather than null.

When I call the function, the first raise notice gives me a value that is correct based on the select it would be performing, but the second raise notice gives me a 0, which suggests to me that although the execute has populated the curr_amount field with something, the IF NOT FOUND is always firing.

Am I misunderstanding what the FOUND variable can be used for - i.e. is it not compatible with/not set by the EXECUTE command and should therefore I just be using a test of IF curr_amount IS NOT NULL?

Cheers,
Paul.

--
Paul Lambert
Database Administrator
AutoLedgers - A Reynolds & Reynolds Company

---------------------------(end of broadcast)---------------------------
TIP 1: if posting/reading through Usenet, please send an appropriate
      subscribe-nomail command to [EMAIL PROTECTED] so that your
      message can get through to the mailing list cleanly

Reply via email to