| From: | Christoph Haller <ch(at)rodos(dot)fzk(dot)de> |
|---|---|
| To: | sgnerd(at)yahoo(dot)com(dot)sg ("Kumar") |
| Cc: | pgsql-sql(at)postgresql(dot)org |
| Subject: | Re: Using UNION inside a cursor |
| Date: | 2003-10-30 10:26:17 |
| Message-ID: | 200310300926.KAA04661@rodos |
| Views: | Whole Thread | Raw Message | Download mbox | Resend email |
| Thread: | |
| Lists: | pgsql-sql |
>
> Dear Friends,
>
> I am working on Postgresql 7.3.4 on RH Linux Server 7.3.=20
>
> I have problem in executing the following procedure
>
> CREATE OR REPLACE FUNCTION list_history()
> RETURNS refcursor AS
> 'DECLARE
> ref REFCURSOR;
> BEGIN
> OPEN ref FOR
> (SELECT * FROM history WHERE obs_type =3D \'AA\' )
> UNION=20
> (SELECT * FROM history WHERE obs_type =3D \'TA\');
>
> RETURN ref;
> END;'
> LANGUAGE 'plpgsql' VOLATILE;
>
> While executing this I got the following error
>
> WARNING: plpgsql: ERROR during compile of list_history near line 5
> ERROR: syntax error at "("
>
> While I execute the following code it is working fine and fetches values.
> (SELECT * FROM history WHERE obs_type =3D \'AA\' )
> UNION=20
> (SELECT * FROM history WHERE obs_type =3D \'TA\');
>
> Where I am wrong. Please shed some light,
>
> Regards
> Kumar
>
My suspicion is the plpgsql parser doesn't accept the opening
parenthesis. What happens on
OPEN ref FOR SELECT * FROM (
(SELECT * FROM history WHERE obs_type =3D \'AA\' )
UNION=20
(SELECT * FROM history WHERE obs_type =3D \'TA\')
) ;
Regards, Christoph
| From | Date | Subject | |
|---|---|---|---|
| Next Message | Kumar | 2003-10-30 10:49:21 | Re: Using UNION inside a cursor |
| Previous Message | sad | 2003-10-30 09:31:54 | unescaped output of bytea |