Search Postgresql Archives

Re: How use input parameter as path to COPY in function?

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Thanks Tom. As usual, I learned a lot more from your reply than just the answer to my question .

Bill

Tom Lane wrote:
Bill Todd <pg@xxxxxxxxxx> writes:
  
I am missing something basic. How can I  use an input parameter as the 
destination path in a COPY statement in a function.
    

plpgsql can only substitute parameter values into places where a data
value is called for in a DML statement (ie, SELECT/INSERT/UPDATE/DELETE).
To use a parameter in other contexts, such as a utility statement like
COPY, you need to construct the command as a string and EXECUTE it.
Try something like

   EXECUTE 'copy dvd.genre to ' || quote_literal(export_path) ||
    $q$
     with
     delimiter as E'\t'
     null as ''
    $q$ ;

(There's any number of ways to do the quoting here, of course,
but I do strongly recommend using quote_literal() on the parameter.)

			regards, tom lane

  


[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Postgresql Jobs]     [Postgresql Admin]     [Postgresql Performance]     [Linux Clusters]     [PHP Home]     [PHP on Windows]     [Kernel Newbies]     [PHP Classes]     [PHP Books]     [PHP Databases]     [Postgresql & PHP]     [Yosemite]
  Powered by Linux