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

Поиск
Список
Период
Сортировка
От Bill Todd
Тема Re: How use input parameter as path to COPY in function?
Дата
Msg-id 4B0ED0C3.20400@dbginc.com
обсуждение исходный текст
Ответ на Re: How use input parameter as path to COPY in function?  (Tom Lane <tgl@sss.pgh.pa.us>)
Список pgsql-general
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@dbginc.com> 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
 

В списке pgsql-general по дате отправления:

Предыдущее
От: Scott Marlowe
Дата:
Сообщение: Re: READ ONLY & I/O ERROR
Следующее
От: Thomas Kellerer
Дата:
Сообщение: date_trunct() and start of week