Обсуждение: execute if statement
How can I achieve this?
EXECUTE '
if 1=1 then
raise notice ''%'', ''notice has been raised...'';
end if;
';
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 rod@iol.ie
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@iol.ie>
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@iol.ie
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@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 <rod@iol.ie>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@iol.ie
On 01/12/2012 19:44, Peter Kroon wrote: > Mmmmm....... > > How do I execute dynamic sql that starts with an if statement. > I'm converting mssql code to pgsql. > Without trying it, I'd guess that you need to have the IF outside the dynamic code, something like this: if .... then execute '.....'; end if; If you show what you're trying to achieve, someone might be able to suggest something better. Ray. -- Raymond O'Donnell :: Galway :: Ireland rod@iol.ie
On 2012-12-01, Peter Kroon <plakroon@gmail.com> wrote: > --f46d043be1f4bd2dec04cfcfbd6a > Content-Type: text/plain; charset=ISO-8859-1 > > Mmmmm....... > > How do I execute dynamic sql that starts with an if statement. "if" is not SQL. > I'm converting mssql code to pgsql. probably best to rewrite at a higher level. -- ⚂⚃ 100% natural
On 12/1/2012 11:59 AM, Peter Kroon wrote: > > I do not wish to create a function for each query I have. > query's aren't IF statements. SELECT stuff FROM table WHERE conditions ....; <= thats a query.