Не совсем уверен, что вы хотите ...
После создания объекта DBI вы можете использовать его снова и снова.Здесь я читаю инструкцию SQL после инструкции SQL из файла и обрабатываю все по порядку:
use DBI;
my $sqlFile = "/home/user1/tools/mytest.sql"
my $dbh = DBI::Connect->new($connect, $user, $password)
or die("Can't access db");
# Open the file that contains the various SQL statements
# Assuming one SQL statement per line
open (SQL, "$sqlFile")
or die("Can't open file $sqlFile for reading");
# Loop though the SQL file and execute each and every one.
while (my $sqlStatement = <SQL>) {
$sth = dbi->prepare($sqlStatement)
or die("Can't prepare $sqlStatement");
$sth->execute()
or die("Can't execute $sqlStatement");
}
Обратите внимание, что я ставлю инструкцию SQL в prepare
, а не в имени файлакоторый содержит инструкцию SQL.Может ли это быть вашей проблемой?