From: Jason Etheridge Date: Sat, 21 Feb 2015 01:53:35 +0000 (-0500) Subject: .get_marc_tag X-Git-Url: http://git.equinoxoli.org/?p=migration-tools.git;a=commitdiff_plain;h=63ccfa923cb4adef948792b49e8a222cf3a236bf .get_marc_tag Useful since you can't get unnormalized values out of metabib.full_rec Signed-off-by: Jason Etheridge --- 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; +