X-Git-Url: http://git.equinoxoli.org/?p=migration-tools.git;a=blobdiff_plain;f=sql%2Fbase%2Fbase.sql;h=896a566ac59f60648e10b7a6d1ce32c6c63a7dcd;hp=aa3e990da4c4704d168b87eef9004db2c5ea8bfc;hb=63ccfa923cb4adef948792b49e8a222cf3a236bf;hpb=90bbdcc5c8ff3b27b01fa1ff9f2ccb77a11d5b57 diff --git a/sql/base/base.sql b/sql/base/base.sql index aa3e990..896a566 100644 --- a/sql/base/base.sql +++ b/sql/base/base.sql @@ -2124,3 +2124,18 @@ CREATE OR REPLACE FUNCTION migration_tools.duplicate_template (INTEGER, INTEGER[ END; $$ LANGUAGE PLPGSQL STRICT VOLATILE; +CREATE OR REPLACE FUNCTION migration_tools.get_marc_tag (TEXT, TEXT, TEXT) RETURNS TEXT AS $$ + my ($marcxml, $tag, $subfield) = @_; + + use MARC::Record; + use MARC::File::XML; + use MARC::Field; + + my $field; + eval { + my $marc = MARC::Record->new_from_xml($marcxml, 'UTF-8'); + $field = $marc->field($tag); + }; + return $field->as_string($subfield); +$$ LANGUAGE PLPERLU STABLE; +