Thanks, but that was not what I was looking for. Seems that I forgot to mention that this function is intended to be written in SQL, not in PL/SQL. For the second one I already picked it off the fascinating* doc (as Keith did) that GET DIAGONSTIC is the right thing.
So what variable/function is the correct SQL-equivalent to ROW_COUNT and can it be used in the following statement ? like DELETE...; SELECT (ROW_COUNT<>0); to return a bool value? Or would you really suggest to change the fct's type to void? *The doc is fascinating, because it is rather short in terms of PL/pgSQL but if you are looking for something you can find it in some example or mentioned in a sentence somweheewere > -----Original Message----- > From: Michael Fuhr [mailto:[EMAIL PROTECTED] > Sent: Dienstag, 18. Jänner 2005 19:52 > To: KÖPFERL Robert > Cc: pgsql-sql@postgresql.org > Subject: Re: [SQL] Returning a bool on DELETE in a proc. > > > On Tue, Jan 18, 2005 at 05:04:58PM +0100, KÖPFERL Robert wrote: > > > I'm currently writing a function which encapsulates a > delete and should > > return a bool as indicator for success. > > How do you define success? When the delete affects one or more rows? > > > DELETE FROM "TariffDetails" WHERE "TariffId"=$1 and > "BNumberPrefix"=$2; > > SELECT TRUE; > > > > but this makes me not happy. > > How can I distingruish wehter DELETE affected 0 or more > rows and return that > > while DELETE is not capable of returning any value? > > If you're using PL/pgSQL then see "Obtaining the Result Status" in > the "Basic Statements" section of the PL/pgSQL documentation. > > > And is the whole function executed if the DELETE fails or > will it stop > > bevore the select? > > A PL/pgSQL function should exit immediately with an error if the > DELETE fails. But understand that PL/pgSQL's notion of a failure > might not match yours: trying to delete from a non-existent table > is a failure, but deleting zero rows from an existing table isn't. > > -- > Michael Fuhr > http://www.fuhr.org/~mfuhr/ > ---------------------------(end of broadcast)--------------------------- TIP 1: subscribe and unsubscribe commands go to [EMAIL PROTECTED]