pg.ddx.io  pgsql-sql@postgresql.org mailing list archive  
help / color / mirror / Atom feed
From: Paul Lambert <paul.lambert@reynolds.com.au>
To: pgsql-sql <pgsql-sql@postgresql.org>
Subject: Function result using execute
Date: Wed, 12 Dec 2007 14:15:21 +0900
Message-ID: <475F6E69.3060207@reynolds.com.au> (raw)

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



view thread (4+ messages)  latest in thread

Message-ID: <475F6E69.3060207@reynolds.com.au>
Permalink:  ../475F6E69.3060207@reynolds.com.au/
Also on:    postgresql.org/message-id/475F6E69.3060207@reynolds.com.au

 · 

reply

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Reply to all the recipients using the --to and --cc options:
  reply via email

  To: pgsql-sql@postgresql.org
  Cc: paul.lambert@reynolds.com.au
  Subject: Re: Function result using execute
  In-Reply-To: <475F6E69.3060207@reynolds.com.au>

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

This inbox is served by DDX for PostgreSQL; see mirroring instructions
for how to clone and mirror all data and code used for this inbox