x86 CPUを搭載したSolarisシステムを使用していますが、perlを使用してsybase dbに接続しようとすると、次のエラーが発生します(スクリプトをデバッグモードで実行し、関数DBD :: Sybase :: dbにステップインするとエラーが発生しました: :_Sybase.pmの94行目でログイン)
ct_con_props(CS_PASSWORD)が/usr/local/lib/perl5/site_perl/5.8.8/i86pc-solaris/DBD/Sybase.pm行94で失敗しました。/usr/local/lib/perl5/site_perl/5.8.8/i86pcで失敗しました-solaris / DBD/Sybase.pm行94DBD:: Sybase :: dr :: connect('DBI :: dr = HASH(0x8613a5c)'、'server = server1'、'user1、' password1'、' HASH(0x86b4e5c )')/usr/local/lib/perl5/site_perl/5.8.8/i86pc-solaris/DBI.pm行617 DBI :: _ ANON _ / usr / local / lib / perl5 / site_perl /5.8.8/で呼び出されますi86pc-solaris / DBI.pm:679/usr/local/lib/perl5/site_perl/5.8.8/i86pc-solaris/DBI.pmで呼び出されます681行DBI:: connect('DBI'、'DBI:Sybase:server = server1'、' user1、'password1')./test.plの28行目で呼び出されますDBI :: CODE(0x83fcdd4)(/ usr / local / lib / perl5 / site_perl / 5.8.8 / i86pc-solaris / DBI.pm :618):618:$ user = ''if!defined $ user;
メッセージから、パスワードに何か問題があるようですか?しかし、パスワードが正しく、同じコードがSpark-solarisシステムで非常にうまく機能していることは確かです。誰かが何が悪いのか、または関数DBD :: Sybase :: db :: _ login( $ this、$ server、$ user、$ auth、$ attr)?この関数は.xsファイルにあるように見えますが、どこにあるのかわからず、デバッグすることもできません。
デバッグなしでスクリプトを実行すると、次のエラーが発生します
ct_con_props(CS_PASSWORD)が/usr/local/lib/perl5/site_perl/5.8.8/i86pc-solaris/DBD/Sybase.pm行94で失敗しました。DBIconnect('server = server1'、'user1'、...)失敗:OpenClientメッセージ:LAYER =(1)ORIGIN =(4)SEVERITY =(6)NUMBER =(221)Server server1、databaseメッセージ文字列:ct__string_extended_encryption:ユーザーapiレイヤー:内部共通ライブラリエラー:エラー文字列は./で利用できませんtest.pl行28接続が./test.pl行28で失敗しました。
これがSybase.pmのサブコネクトのコードです
sub connect {
my($drh, $dbase, $user, $auth, $attr) = @_;
my $ifile = '';
my $server = $dbase || $ENV{DSQUERY} || 'SYBASE';
my($this) = DBI::_new_dbh($drh, {
'Name' => $server,
'Username' => $user,
'CURRENT_USER' => $user,
});
DBD::Sybase::db::_login($this, $server, $user, $auth, $attr)
or return undef;
return $this;
}