在没有DBI的情况下连接到perl中的sybase DB

时间:2012-08-16 07:02:30

标签: sql perl sybase solaris

我已尝试使用以下脚本连接到数据库。 这种方式适用于oracle,但我不确定为什么它不适用于Sybase。

#!/usr/bin/perl

use strict;
use warnings;

my $result = qx { isql -Uxx -Pxxxxxxx -Dxxxxx <<EOF
select count(*) from XXX;
exit;
EOF
};
print "result is :";
print $result;
print "\nbye bye\n";

我尝试连接到没有DBI的sybase DB。 请不要告诉我使用DBI.even我知道我们可以使用DBI。但不幸的是DBI没有安装在我的服务器中,我不是我有权为perl安装模块的管理员。对我来说,我必须充分利用它。但这是一个偏离主题的地方。

我重复这个问题:

如何在不使用DBI的情况下从perl连接到sybase数据库?

上述脚本的输出是:

> temp.pl
result is :
bye bye

当我手动执行同样的事情时:

> isql -Uxx -Pxxxxxxxx -Dxxxxx
1> select count(*) from XXX
2> go

 ----------- 
          26 

(1 row affected)
1> exit
>

1 个答案:

答案 0 :(得分:0)

我得到了解决方案: 这是因为分号和go语句。我修改了下面的脚本,现在正在工作。

#!/usr/bin/perl

use strict;
use warnings;

my $result = qx { isql -Uxx -Pxxxxxxx -Dxxxx <<EOF
set nocount on
select count(*) from XXX
go
exit
EOF
};
print "result is :";
print $result;
print "\nbye bye\n";