Thread: exception handling in postgres plpgsql

exception handling in postgres plpgsql

From
Karthikeyan Sundaram
Date:

Hi,
 
  I am having a function like this
 
create or replace function audio_format_func (
    in p_bitrate audio_format.audio_bitrate%TYPE,
    in p_sampling_rate audio_format.sampling_rate%type,
    in p_bit_per_sample audio_format.bit_per_sample%type,
    in p_audio_codec audio_format.audio_codec%type,
    in p_mimetype audio_format.mimetype%type,
    in p_mono_stero audio_format.number_of_channel%type) returns int as
$$
DECLARE
  p_audio_id audio_format.audio_id%type;
begin
   select  audio_id into a
     from audio_format
    where audio_bitrate = p_bitrate
      and sampling_rate = p_sampling_rate
      and mimetype = p_mimetype
      and number_of_channel = p_mono_stero
      and audio_code = p_audio_codec;
   return 1;
  exception
   when NO_DATA_FOUND
   then
      return 100;
end;
$$
language 'plpgsql';
 
When I compile, I am getting an error message
ERROR:  unrecognized exception condition "no_data_found"
CONTEXT:  compile of PL/pgSQL function "audio_format_func" near line 15
 
How will I handle exceptions in postgres?
 
Please advise.
 
Regards
skarthi
 


i'm making a difference. Make every IM count for the cause of your choice. Join Now.

Re: exception handling in postgres plpgsql

From
Joe
Date:
Hi,

On Tue, 2007-04-03 at 15:35 -0700, Karthikeyan Sundaram wrote:
>   exception
>    when NO_DATA_FOUND
>    then
>       return 100;
> end;
> $$
> language 'plpgsql';
>
> When I compile, I am getting an error message
> ERROR:  unrecognized exception condition "no_data_found"
> CONTEXT:  compile of PL/pgSQL function "audio_format_func" near line
> 15

The constant is no_data.  See
http://www.postgresql.org/docs/8.2/static/errcodes-appendix.html

Joe


Re: exception handling in postgres plpgsql

From
Tom Lane
Date:
Karthikeyan Sundaram <skarthi98@hotmail.com> writes:
> When I compile, I am getting an error message
> ERROR:  unrecognized exception condition "no_data_found"CONTEXT:  compile o=
> f PL/pgSQL function "audio_format_func" near line 15
> =20
> How will I handle exceptions in postgres?

Reading between the lines I gather that you are reading 8.2
documentation and trying to apply the info to some previous version that
doesn't have SELECT INTO STRICT (which you failed to use anyway...)

You probably want to test the magic FOUND variable instead --- see the
plpgsql docs.

            regards, tom lane