Re: Feature Request for Debugging SQL in PGAdmin3 when SQL contains variables
От | Raymond O'Donnell |
---|---|
Тема | Re: Feature Request for Debugging SQL in PGAdmin3 when SQL contains variables |
Дата | |
Msg-id | 4CE3BD4D.4050101@iol.ie обсуждение исходный текст |
Ответ на | Re: Feature Request for Debugging SQL in PGAdmin3 when SQL contains variables ("Dan Shoubridge" <dan.shoubridge@autovhc.co.uk>) |
Список | pgadmin-support |
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 rod@iol.ie
В списке pgadmin-support по дате отправления: