On 17/11/2010 11:22, Dan Shoubridge wrote:
Dan,
Ok, I understand and it's a shame the vars aren't strong typed. It's
little things like that that make me want SQL Server back. It doesn't seem
like a big thing to some people, but for a lot of developers the amount of
work added by this when debugging sql adds up over time.

I know it's a new invention in PostgreSQL 9.0 so might not be an option for
you, but wouldn't the new

DO command do what you are looking for?

pgScript looks better for me atm, as you can have @ to specify variables, it
doesn't let you in anonymous code blocks - this defeats the object of
efficient debugging entirely (I'd have to remove the : from the sql than add
it again afterwards)

I tried the following:

DO language plpgsql $$
DECLARE x integer;
BEGIN
        x := 7;
        SELECT * FROM site WHERE sitecode = x;
  END
  $$;

but got the error

ERROR:  query has no destination for result data
HINT:  If you want to discard the results of a SELECT, use PERFORM instead.
CONTEXT:  PL/pgSQL function "inline_code_block" line 7 at SQL statement

********** Error **********

ERROR: query has no destination for result data
SQL state: 42601
Hint: If you want to discard the results of a SELECT, use PERFORM instead.
Context: PL/pgSQL function "inline_code_block" line 7 at SQL statement

It looks like I need to declare the returning type, or specify to output to
the dataoutput window? But the documentation doesn't really expand on this
scenario, and there isn't any examples I could find through Google.

I haven't been following this thread, but on the above, yes, you do have to declare a variable for the returned row, something like:

declare
  x integer;
  rec record;
begin
  x := 7;
  select * into rec from site where sitecode = x;
end;

Ray.

--
Raymond O'Donnell :: Galway :: Ireland
r...@iol.ie

--
Sent via pgadmin-support mailing list (pgadmin-support@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgadmin-support

Reply via email to