【发布时间】:2016-03-08 08:16:13
【问题描述】:
我正在使用 ODBC 和 FreeTDS 从 linux 服务器连接到 MS SQL Server 2008(连接字符串)。我需要在 SQL 服务器上的表中获取 RHEL 服务器上的本地 .CSV 文件的内容。但是,至少可以说我的 SQL 有点破旧。我应该如何进行?我对 DBI 也很陌生。
#!/usr/bin/perl
# PERL MODULES WE WILL BE USING
use DBI;
use DBD::ODBC;
my $data_source = q/dbi:ODBC:MSSQLServer/; # DSN string from /etc/odbc.ini
my $user = q/Username/;
my $password = q/Password/;
my $dbh = DBI->connect($data_source, $user, $password, {RaiseError => 0, PrintError => 1}) or die "Can't connect to $data_source: $DBI::errstr";
.csv 文件包含 2 个值,每行用逗号分隔。必须在表中插入每一行。数据库上的表有 2 列(attribute1 和 attribute2)。
.csv 内容示例:
服务器1,id1
服务器2,id2
server3,id1
server4,id9
主键是已经设置的数值,所以我认为重复值不是问题。
【问题讨论】:
-
所以您希望我们为您解析 CSV 文件,遍历其内容,并将每一行作为新记录插入数据库中?
-
事情是这样的——看起来你自己并没有付出体面的努力来解决这个问题。您发布了 10 行代码,其中只有 1 行真正起作用。我不会为你做你的工作,但是我会为你指出正确的方向。完整阅读所有这些内容:DBI、Text::CSV/split() 和 INSERT (Transact-SQL)。然后回来编辑您的问题,我们会看看我们能做些什么。
标签: sql perl sql-server-2008 odbc dbi