Re: [EXT]Re: running \copy through perl dbi ?

Поиск
Список
Период
Сортировка
От Johnson, Bruce E - (bjohnson)
Тема Re: [EXT]Re: running \copy through perl dbi ?
Дата
Msg-id CFBA9951-9426-43F9-A9DD-64520562CFD2@email.arizona.edu
обсуждение исходный текст
Ответ на Re: running \copy through perl dbi ?  (Vincent Veyron <vv.lists@wanadoo.fr>)
Ответы Re: [EXT]Re: running \copy through perl dbi ?
Список pgsql-general

On Dec 10, 2023, at 10:41 AM, Vincent Veyron <vv.lists@wanadoo.fr> wrote:

External Email

On Fri, 8 Dec 2023 10:45:28 -0500
David Gauthier <dfgpostgres@gmail.com> wrote:

I'm trying to run a PG client side "\copy" command from a perl script.  I
tried using $dbh->do("\\copy ...") but it barffed when it saw the '\'...
ERROR:  syntax error at or near "\"

I can do this with a command line approach, attaching to the DB  then run
using...

Duh! I just realized that what I proposed with system() is a command line approach.

As David Johnston mentionned, you can use the SQL COPY command. 

One thing to remember with the Perl DBI is that you can use a string variable in the $dbh->do() command.

Perl uses 2 different string variable delimiters:

1)  ‘ ‘ , which is exactly what you enter $s= ‘\copy * from foo as json’; will send that to the database without the need for escaping anything (unless you need to enter an actual ‘ in the command, in which case method two is better)

2) “ “ , which allows for declared perl variables to be substituted in the string:$table=‘foo’;$type=‘json’;$cmd=‘\copy’;$s= “$cmd * from $table as $type”;

Concatenation (periods between strings) works as well: $s = ‘\copy ‘.”* from foo as json”;

 Then $dbh->do($s); will work in alll three cases.

Been using perl and DBI for (does quick math, ulp!) over 20 years now wrangling a lot of things like this.


-- 
Bruce Johnson
University of Arizona
College of Pharmacy
Information Technology Group

Institutions do not have opinions, merely customs

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

Предыдущее
От: Vincent Veyron
Дата:
Сообщение: Re: running \copy through perl dbi ?
Следующее
От: Adrian Klaver
Дата:
Сообщение: Re: [EXT]Re: running \copy through perl dbi ?