X-Git-Url: http://git.equinoxoli.org/?p=migration-tools.git;a=blobdiff_plain;f=sql%2Fbase%2Fbase.sql;h=d773fdbe0d91ede5783adc8349f2fdea35cc35d2;hp=d70f55d518429bd9b1ed5b176052cabc9de250ba;hb=ad158c0688fafd046887fe34da9083a3784dadec;hpb=49367fb6de59947ea3c131ea36d73b5b6b1f0411 diff --git a/sql/base/base.sql b/sql/base/base.sql index d70f55d..d773fdb 100644 --- a/sql/base/base.sql +++ b/sql/base/base.sql @@ -5161,94 +5161,3 @@ BEGIN END $function$; -CREATE OR REPLACE FUNCTION migration_tools.force_add_sf9(marc text, new_9 text) - RETURNS text - LANGUAGE plperlu -AS $function$ -use strict; -use warnings; - -use MARC::Record; -use MARC::File::XML (BinaryEncoding => 'utf8'); - -binmode(STDERR, ':bytes'); -binmode(STDOUT, ':utf8'); -binmode(STDERR, ':utf8'); - -my $marc_xml = shift; -my $new_9_to_set = shift; - -$marc_xml =~ s/(.........)./${1}a/; - -eval { - $marc_xml = MARC::Record->new_from_xml($marc_xml); -}; -if ($@) { - #elog("could not parse $bibid: $@\n"); - import MARC::File::XML (BinaryEncoding => 'utf8'); - return $marc_xml; -} - -my @uris = $marc_xml->field('856'); -return $marc_xml->as_xml_record() unless @uris; - -foreach my $field (@uris) { - my $ind1 = $field->indicator('1'); - if (!defined $ind1) { next; } - if ($ind1 ne '1' && $ind1 ne '4') { $field->set_indicator(1,'4'); } - my $ind2 = $field->indicator('2'); - if (!defined $ind2) { next; } - if ($ind2 ne '0' && $ind2 ne '1') { $field->set_indicator(2,'0'); } - $field->add_subfields( '9' => $new_9_to_set ); -} - -return $marc_xml->as_xml_record(); - -$function$ - -CREATE OR REPLACE FUNCTION migration_tools.strict_add_sf9(marc text, new_9 text) - RETURNS text - LANGUAGE plperlu -AS $function$ -use strict; -use warnings; - -use MARC::Record; -use MARC::File::XML (BinaryEncoding => 'utf8'); - -binmode(STDERR, ':bytes'); -binmode(STDOUT, ':utf8'); -binmode(STDERR, ':utf8'); - -my $marc_xml = shift; -my $new_9_to_set = shift; - -$marc_xml =~ s/(.........)./${1}a/; - -eval { - $marc_xml = MARC::Record->new_from_xml($marc_xml); -}; -if ($@) { - #elog("could not parse $bibid: $@\n"); - import MARC::File::XML (BinaryEncoding => 'utf8'); - return $marc_xml; -} - -my @uris = $marc_xml->field('856'); -return $marc_xml->as_xml_record() unless @uris; - -foreach my $field (@uris) { - my $ind1 = $field->indicator('1'); - if (!defined $ind1) { next; } - if ($ind1 ne '1' && $ind1 ne '4') { next; } - my $ind2 = $field->indicator('2'); - if (!defined $ind2) { next; } - if ($ind2 ne '0' && $ind2 ne '1') { next; } - $field->add_subfields( '9' => $new_9_to_set ); -} - -return $marc_xml->as_xml_record(); - -$function$ - -