Re: plpgsql arrays

From: justin <justin(at)emproshunts(dot)com>
To: Matthew Wakeling <matthew(at)flymine(dot)org>
Cc: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>, pgsql-performance(at)postgresql(dot)org
Subject: Re: plpgsql arrays
Date: 2009-04-07 15:45:00
Message-ID: 49DB74FC.9080705@emproshunts.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-performance

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta content="text/html;charset=ISO-8859-1" http-equiv="Content-Type">
</head>
<body bgcolor="#ffffff" text="#000000">
Matthew Wakeling wrote:
<blockquote
cite="mid:alpine(dot)DEB(dot)2(dot)00(dot)0904071630420(dot)791(at)aragorn(dot)flymine(dot)org"
type="cite">On Tue, 7 Apr 2009, justin wrote:
<br>
<blockquote type="cite">
<blockquote type="cite">What would be the syntax for putting a
single row from a cursor into a variable? I have tried:
<br>
<br>
FETCH INTO left left_cursor;
<br>
<br>
which says syntax error, and
<br>
<br>
left = FETCH left_cursor;
<br>
<br>
which gives the error 'ERROR:&nbsp; missing datatype declaration at or near
"="'
<br>
</blockquote>
<br>
Have to declare Left variable&nbsp; as record data type declaration part of
the function
<br>
</blockquote>
<br>
It is.
<br>
<br>
CREATE OR REPLACE FUNCTION overlap_gene_primer() RETURNS SETOF RECORD
AS $$
<br>
DECLARE
<br>
&nbsp;&nbsp;&nbsp; left location;
<br>
&nbsp;&nbsp;&nbsp; retval RECORD;
<br>
BEGIN
<br>
&nbsp;&nbsp;&nbsp; DECLARE left_cursor NO SCROLL CURSOR FOR SELECT location FROM
location, gene WHERE location.id = gene.id ORDER BY objectid, start,
end;
<br>
&nbsp;&nbsp;&nbsp; left = FETCH left_cursor;
<br>
END;
<br>
$$ LANGUAGE plpgsql;
<br>
<br>
Matthew
<br>
</blockquote>
<br>
Change the type to Record<br>
from the help file<br>
<code class="command">FETCH</code> retrieves the next row from the
cursor into a target, which might be a <b>row variable, a record
variable, or a comma-separated </b>list of simple variables, just like
<code class="command">SELECT INTO</code>. If there is no next row, the
target is set to NULL(s). As with <code class="command">SELECT INTO</code>,
the special variable <code class="literal">FOUND</code> can be checked
to see whether a row was obtained or not<br>
<br>
</body>
</html>

Attachment Content-Type Size
unknown_filename text/html 1.9 KB

In response to

Browse pgsql-performance by date

  From Date Subject
Next Message Tom Lane 2009-04-07 16:08:13 Re: plpgsql arrays
Previous Message Matthew Wakeling 2009-04-07 15:33:30 Re: plpgsql arrays