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 <plakroon@xxxxxxxxx>
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 <rod@xxxxxx>
I think EXECUTE used like this is available only in a function: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;
>
> ';
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
rod@xxxxxx