Обсуждение: Order by in stored functions
Hello
I tried to create the following function
CREATE Function pGetMenu ( int ) returns setof varchar As ' SELECT IdMenuShow || IdWebPage FROM Menu WHERE
IdMenu= $1 ORDER BY IdSort ; ' language 'SQL' ;
I've got the following error message:
ERROR: function declared to return varchar returns multiple values in final retrieve
If O just remove the ORDER BY clause als works well so I guess that the
ORDER BY has to be replaced by somethjing other. Could somebody
enlighten me how to do the ordering in a stored procedure?
Kind regards
Andreas.
Andreas Tille <tillea@rki.de> writes:
> I've got the following error message:
> ERROR: function declared to return varchar returns multiple values in
> final retrieve
This is a bug that has already been fixed in current sources: the check
that makes sure your select produces only one varchar column is
mistakenly counting the hidden IdSort column that's needed to sort by.
I don't know of any good workaround in 7.0, short of patching the
erroneous code. Have you thought about using a view, rather than a
function returning set?
regards, tom lane
On Mon, 4 Sep 2000, Tom Lane wrote:
> This is a bug that has already been fixed in current sources: the check
> that makes sure your select produces only one varchar column is
> mistakenly counting the hidden IdSort column that's needed to sort by.
Is there any patch against 7.0.2 sources which might help me (or the
Debian package maintainer out?
> I don't know of any good workaround in 7.0, short of patching the
> erroneous code. Have you thought about using a view, rather than a
> function returning set?
I could try that.
Is there any general advise for more or less beginners like me regarding
when to use views and when to use functions?
Kind regards
Andreas.
Hi, My experience is when you involoved that you have to use some CONTROL LANGUAGE such as LOOP, IF ... ELSE ... or value transfer (use variables), then using function, otherwise using view, temp table... In Postgres, function is another way to store procedure. Andreas Tille wrote: > On Mon, 4 Sep 2000, Tom Lane wrote: > > > This is a bug that has already been fixed in current sources: the check > > that makes sure your select produces only one varchar column is > > mistakenly counting the hidden IdSort column that's needed to sort by. > Is there any patch against 7.0.2 sources which might help me (or the > Debian package maintainer out? > > > I don't know of any good workaround in 7.0, short of patching the > > erroneous code. Have you thought about using a view, rather than a > > function returning set? > I could try that. > > Is there any general advise for more or less beginners like me regarding > when to use views and when to use functions? > > Kind regards > > Andreas. -- Jie LIANG Internet Products Inc. 10350 Science Center Drive Suite 100, San Diego, CA 92121 Office:(858)320-4873 jliang@ipinc.com www.ipinc.com