LINUX.ORG.RU

Выполнить SQL скрипт

 , ,


0

1

Мне надо выполнить SQL скрипт с парой сотен стейтментов средствами DBI и DBD::Oracle.

От нагугленных решений чуть не разбил себе голову фейспалмами:
http://stackoverflow.com/questions/4217306/execute-sql-file-in-perl
или просто заявления о том, что это не совсем реализуемо:
http://www.perlmonks.org/?node_id=272308

В кратце:

sub exec_sql {
    my ($dbh, $file) = @_;
    
    open(my $fh, '<', $file);
    my $sql = do { local $/ = undef; <$fh> };
    close($file);

    $dbh->do($sql);
}
не подходит. А делать тупой split /;/, $sql кажется неправильным.

Помогите пожалуйста!

Разделить команды символом '\'внутри файла. Избавиться от ';' в конце команды, но не от ";" внутри кавычек, строк.

ZUKMAN ()
Ответ на: комментарий от KennyMinigun

Ыыы, ровно до тех пор, пока в скрипте alter/drop/create не встретятся :-)

no-dashi ★★★★★ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.