Re: Execute - Mailing list pgsql-general

From valgog
Subject Re: Execute
Date
Msg-id c123da57-e477-4740-b369-a2dfedcef50b@j20g2000hsi.googlegroups.com
Whole thread Raw
List pgsql-general
On Feb 5, 9:11 am, "Дикий неадекватный кальмар"
<dima.petchon...@gmail.com> wrote:
> is there a way to catch error returned by EXECUTE statement?
>
> declare stmt character varying;
> begin
> stmt=crate user||'some_name'||' with password '''||'somepassword';
> execute stmt;
>
> end;
>
> here i need to know, actually to handle some errors, like user already
> exists, or not enough privileges for creating users.


CREATE OR REPLACE FUNCTION test_exec(p_username text, p_password text)
  RETURNS text AS
$BODY$declare
  stmt character varying;
begin
stmt = $S$create user $S$ || p_username || $S$ with password '$S$ ||
p_password || $S$'$S$;
execute stmt;
return 'OK';
exception
  when others then
  raise WARNING 'Exception in % %', SQLSTATE, SQLERRM;
  return SQLSTATE || ': ' || SQLERRM;
end; $BODY$
  LANGUAGE 'plpgsql' VOLATILE;

select test_exec('neadekwatnzj', 'kaljmar');

select test_exec('neadekwatnzj', 'kaljmar');

select test_exec('neadekwatnzj', 'kaljmar');

pgsql-general by date:

Previous
From: Teodor Sigaev
Date:
Subject: Re: full text index and most frequently used words
Next
From: "Scott Marlowe"
Date:
Subject: Re: ERROR: COPY quote must be a single ASCII character