Thread: execute in pl/pgsql

execute in pl/pgsql

From
Dino Vliet
Date:
Hi,

In my pl/pgsql procedure I have the following line:

execute 'copy cancella to ' || location || ' with
delimiter as \',\'';

Location is a string that gives the absolute pathname.

It's obvious what I'm aiming for, but this still gives
an error because of the two '' I'm missing around the
location var.

That's why I'm getting this error message:

NOTICE:  location is hier
/usr/local/pgsql/data/plpgtrainin10.txt

ERROR:  syntax error at or near "/" at character 18
QUERY:  copy cancella to
/usr/local/pgsql/data/plpgtrainin10.txt with delimiter
as ','
CONTEXT:  PL/pgSQL function "perform" line 16 at
execute statement

How can I solve it? I've tried a few things but keep
getting this error.

Thanks

__________________________________________________
Do You Yahoo!?
Tired of spam?  Yahoo! Mail has the best spam protection around
http://mail.yahoo.com

Re: execute in pl/pgsql

From
Tom Lane
Date:
Dino Vliet <dino_vliet@yahoo.com> writes:
> In my pl/pgsql procedure I have the following line:

> execute 'copy cancella to ' || location || ' with
> delimiter as \',\'';

quote_literal(location) would work much better and more safely.

            regards, tom lane

Re: execute in pl/pgsql

From
Dino Vliet
Date:
Solved:-)
Thanks for your aanswer, now I can go further with
exploring pl/pgsql. Looks nice.

Brgds


--- Tom Lane <tgl@sss.pgh.pa.us> wrote:

> Dino Vliet <dino_vliet@yahoo.com> writes:
> > In my pl/pgsql procedure I have the following
> line:
>
> > execute 'copy cancella to ' || location || ' with
> > delimiter as \',\'';
>
> quote_literal(location) would work much better and
> more safely.
>
>             regards, tom lane
>
> ---------------------------(end of
> broadcast)---------------------------
> TIP 9: In versions below 8.0, the planner will
> ignore your desire to
>        choose an index scan if your joining column's
> datatypes do not
>        match
>


__________________________________________________
Do You Yahoo!?
Tired of spam?  Yahoo! Mail has the best spam protection around
http://mail.yahoo.com