From cc7c0c66fb34804b2dd8c729a55d28e3358a3ea2 Mon Sep 17 00:00:00 2001 From: toins Date: Thu, 12 Jul 2007 15:33:31 +0000 Subject: [PATCH] optimisation + encoding set. FIXME : unimarc hard coded. --- misc/bulkupdate.pl | 22 +++++++++++++--------- 1 file changed, 13 insertions(+), 9 deletions(-) diff --git a/misc/bulkupdate.pl b/misc/bulkupdate.pl index 958f7998dd..35a290a3b4 100644 --- a/misc/bulkupdate.pl +++ b/misc/bulkupdate.pl @@ -35,8 +35,8 @@ my ( $no_marcxml, $no_isbn, $help) = (0,0,0); GetOptions( 'noisbn' => \$no_isbn, 'noxml' => \$no_marcxml, - 'h' => \$help, - 'help' => \$help, + 'h' => \$help, + 'help' => \$help, ); @@ -102,30 +102,34 @@ if(not $no_marcxml){ while (my $data = $sth->fetchrow_arrayref){ - my $biblioitemnumber = $data->[0]; + my $biblioitemnumber = $data->[0]; print "\rremoving '-' on marcxml for biblioitemnumber $biblioitemnumber"; # suppression des tirets de l'isbn dans la notice my $marcxml = $data->[1]; eval{ - my $record = MARC::Record->new_from_xml($marcxml); + my $record = MARC::Record->new_from_xml($marcxml,'UTF-8','UNIMARC'); my @field = $record->field('010'); + my $flag = 0; foreach my $field (@field){ my $subfield = $field->subfield('a'); if($subfield){ my $isbn = $subfield; $isbn =~ s/-//g; $field->update('a' => $isbn); + $flag = 1; } } - $marcxml = $record->as_xml; - # Update - my $sth = $dbh->prepare($update_marcxml); - $sth->execute($marcxml,$biblioitemnumber); + if($flag){ + $marcxml = $record->as_xml; + # Update + my $sth = $dbh->prepare($update_marcxml); + $sth->execute($marcxml,$biblioitemnumber); + } }; if($@){ print "\n /!\\ pb getting $biblioitemnumber : $@"; } } -} \ No newline at end of file +} -- 2.39.5