플래그가있는 테이블을 업데이트하려면 플래그가 0이면 해당 행을 업데이트하십시오. 그러나 내 스크립트는 모든 행을 거쳐 update 문을 작성하지만 마지막 행에서만 update statemnt를 실행합니다. 아무도 내가 어디로 잘못 보았는가?내 스크립트가 마지막 행만 업데이트하는 이유는 무엇입니까?
그것은 마지막 행까지 메신저 bekomming이 오류를 도움이된다면 :
DB-라이브러리 오류 : 운영 시스템 오류 보류중인 결과로 새로운 Adaptive Server에 작업을 시작하기 시도 : 오류 0
use Sybase::DBlib;
use Sys::Hostname;
use Getopt::Std;
## additionals
use ADDITIONALS;
my ($dsn, $database, $dbserver, $dbname, $user, $passwd, $rmdb_config) = ('','','','','','','');
my ($table_name,$file_name) = ('','');
$dsn = "dbi:Sybase";
$database = join (' ~ ',$dsn, $dbserver, $dbname, $user, $passwd, $sda_config);
$dbhandle = connect_me($database);
my $ctl;
$ctl= "select Table_name = Table_name, Filename = Filename from table123 where Flag = '0'";
$dbhandle->dbcmd($ctl);
$dbhandle->dbsqlexec;
while($dbhandle->dbresults != NO_MORE_RESULTS){
while(%db_data = $dbhandle->dbnextrow(1)){
my $update ="update table123 set Flag = '1' where Flag ='0' and Filename ='$db_data{Filename}' ";
print $update."\n";
$dbhandle->dbcmd($update);
$dbhandle->dbsqlexec;
}
}
'Sybase :: DBlib'에서'DBI '를 통해 큰 이점이 있습니까? –
'select Table_name = Table_name'은 부울'true'를 선택하는 것과 같습니다. –
Sybase :: DBlib over DBI dll rly 알고 있습니다. 유닉스에서 perl 드라이버 때문에 사용해야합니다. – theweeknd