1

DBに接続するために次のスクリプトを試しました。この方法はオラクルでは機能しますが、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 を使用するように言わないでください。これに DBI を使用できることは知っていますが、残念ながら DBI は私のサーバーにインストールされておらず、私は perl 用のモジュールをインストールする権限を持っている管理者ではありません。私はそれを完全に使用する必要があります。しかし、それはここでの話題ではありません。

私は質問を繰り返します:

DBI を使用せずに perl から sybase DB に接続する方法は?

上記のスクリプトの出力は次のとおりです。

> temp.pl
result is :
bye bye

同じことを手動で実行すると:

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

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

(1 row affected)
1> exit
>
4

1 に答える 1

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";
于 2012-08-16T07:38:00.190 に答える