Search Postgresql Archives

Re: Run external SQL file via Perl dbh

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

 



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 external SQL 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..

--
Sent via pgsql-general mailing list (pgsql-general@xxxxxxxxxxxxxx)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-general


[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