sql - 使用 DBI 使用 Perl 连接到 SQL Server?
问题描述
我正在尝试使用 Perl DBI 模块连接到 SQL 服务器,我已经尝试了所有连接字符串格式,但 Perl 仍然抛出无效连接字符串错误。
我已经尝试过 perl 僧侣网站上提供的代码片段。
#!/usr/bin/perl -w
use strict;
use DBI;
# Set up variables for the connection
my $server_name = '00.120.124.1;3181';
my $database_name = 'abcd';
my $database_user = 'kkkk';
my $database_pass = 'password';
my $DSN = 'driver={SQL Server};server=$server_name;da
+tabase=$database_name;uid=$database_user;pwd=$database_pass;';
my $dbh = DBI->connect("DBI:ODBC:$DSN") || die "Couldn't open database
+: $DBI::errstr\n";
预期结果是连接到数据库。
失败:[Microsoft][ODBC SQL Server Driver][DBNETLIB]SQL Server 不存在或访问被拒绝。[Microsoft][ODBC SQL Server 驱动程序][DBNETLIB]ConnectionOpen (Connect())。(SQL-01000) [state was 01000 now 01S00] [Microsoft][ODBC SQL Server Driver]perl.pl 第 16 行的连接字符串属性 (SQL-01S00) 无效。无法打开数据库 +:[Microsoft][ODBC SQL服务器驱动程序][DBNETLIB]SQL Server 不存在或访问被拒绝。(SQL-08001) [状态为 08001 现在为 01000] 无效的连接字符串属性 (SQL-01S00)
解决方案
您的帖子中以+
+tabase=$database_name;uid=$database_user;pwd=$database_pass;';
+: $DBI::errstr\n";
从 perlmonks.org 错误地复制和粘贴。前导+
符号是一个约定,表示一条长线被分割了。您应该删除+
并将该行加入上一行,以便您的代码将读取
my $DSN = 'driver={SQL Server};server=$server_name;database=$database_name;uid=$database_user;pwd=$database_pass;';
my $dbh = DBI->connect("DBI:ODBC:$DSN") || die "Couldn't open database: $DBI::errstr\n";
推荐阅读
- symfony4 - 没有为“安全”扩展配置编码器
- java - 深度优先搜索算法到字符串
- javascript - 如何修复找不到模块“./aws-export”或其对应的类型声明.ts (2307)
- amazon-dynamodb - Dynamoose 聚集体 MAX
- python - 在python中使用kNN和决策树获得一个常数结果
- scope - 无法在 except 块中访问 y
- angular - 找不到模块“bootstrap/dist/js/bootstrap”的声明文件
- android - 需要在内置相机应用程序中显示自定义形状叠加
- r - Profvis 上的错误:没有可用的数据框
- azure - Azure CDN、终结点和 DNS 区域是否仅全局?