Re: Run external SQL file via Perl dbh

Поиск
Список
Период
Сортировка
От Toby Corkindale
Тема Re: Run external SQL file via Perl dbh
Дата
Msg-id 4FD6AA3B.2010109@strategicdata.com.au
обсуждение исходный текст
Ответ на Run external SQL file via Perl dbh  (David Williams <mobiusinversion@gmail.com>)
Ответы Re: Run external SQL file via Perl dbh  (Greg Williamson <gwilliamson39@yahoo.com>)
Список pgsql-general
On 10/06/12 08:29, David Williams wrote:
>
> Hi There,
>
> I'd like to be able to run the contents of an external SQL file from Perl.  Something akin to:
>
>      $dbh->do( '\i /home/david/run_me.sql' );
>
> However this fails, and I assume that is because the \i is a client command. Is there a way to run the contents of an
externalSQL from a Per database handle? 

How about something like

use File::Slurp;
use Try::Tiny;

try {
   $dbh->being_work;
   $dbh->do($_) for split(/;/, read_file('run_me.sql'))
   $dbh->commit;
}
catch {
   say "Failed SQL: $_";
   $dbh->rollback;
};


That will break if you have any semi-colons inside quoted strings, but
you could improve the splitting to cope with that..

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

Предыдущее
От: Jeff Davis
Дата:
Сообщение: Re: ctid ranges
Следующее
От: Greg Williamson
Дата:
Сообщение: Re: Run external SQL file via Perl dbh