To give a better idea: DO $$ DECLARE v_string text = 'raise notice ''%'', ''this could be sql with if statement...'';'; BEGIN if 1=1 then raise notice '%', ' first notice has been raised...'; end if; EXECUTE v_string;--this fails END; $$ LANGUAGE plpgsql;
I do not wish to create a function for each query I have. 2012/12/1 Peter Kroon <plakr...@gmail.com> > Mmmmm....... > > How do I execute dynamic sql that starts with an if statement. > I'm converting mssql code to pgsql. > > > 2012/12/1 Raymond O'Donnell <r...@iol.ie> > >> On 01/12/2012 19:11, Peter Kroon wrote: >> > How can I achieve this? >> > >> > EXECUTE ' >> > >> > if 1=1 then >> > raise notice ''%'', ''notice has been raised...''; >> > end if; >> > >> > '; >> >> I think EXECUTE used like this is available only in a function: >> >> create or replace function my_function() >> returns void >> as >> $$ >> begin >> execute .... >> end; >> $$ >> language plpgsql; >> >> In "ordinary" SQL, EXECUTE executes a prepared statement. >> >> Ray. >> >> >> -- >> Raymond O'Donnell :: Galway :: Ireland >> r...@iol.ie >> > >