gpt4 book ai didi

sql - 在 Perl 中执行 SQL 文件

转载 作者:行者123 更新时间:2023-12-04 13:50:11 26 4
gpt4 key购买 nike

我们有一个 Perl 脚本,它运行 SQL 并将数据放入表中。
现在,我们不想提供单个 SQL 语句,而是希望将它们放在一个 .sql 文件中。我们知道我们的程序会失败,因为它需要一个 SQL 语句,而不是一堆 SQL 语句(也来自 .sql 文件)。我们如何使它与 .sql 文件一起工作(有多个 INSERT 语句?)。我们正在使用 DBI 包。

一小段代码:

$sth = $dbh->prepare("/home/user1/tools/mytest.sql");
$sth->execute || warn "Couldn't execute statement";
$sth->finish();

最佳答案

DDL 有一种解决方法。您需要先吞下 SQL 文件,然后将其内容包含在 BEGIN ... END; 中。关键词。喜欢:

sub exec_sql_file {
my ($dbh, $file) = @_;

my $sql = do {
open my $fh, '<', $file or die "Can't open $file: $!";
local $/;
<$fh>
};

$dbh->do("BEGIN $sql END;");
}

此子例程允许运行包含多个语句的 DDL (SQL) 脚本(例如数据库转储)。

关于sql - 在 Perl 中执行 SQL 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4217306/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com