get_marc_leader()
authorJason Etheridge <jason@esilibrary.com>
Wed, 6 Dec 2017 04:54:41 +0000 (23:54 -0500)
committerJason Etheridge <jason@esilibrary.com>
Wed, 6 Dec 2017 04:54:41 +0000 (23:54 -0500)
Signed-off-by: Jason Etheridge <jason@esilibrary.com>

sql/base/base.sql

index 01817db..1c25fcc 100644 (file)
@@ -2554,6 +2554,21 @@ CREATE OR REPLACE FUNCTION migration_tools.duplicate_template_but_change_delay (
     END;
 $$ LANGUAGE PLPGSQL STRICT VOLATILE;
 
+CREATE OR REPLACE FUNCTION migration_tools.get_marc_leader (TEXT) RETURNS TEXT AS $$
+    my ($marcxml) = @_;
+
+    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->leader();
+    };
+    return $field;
+$$ LANGUAGE PLPERLU STABLE;
+
 CREATE OR REPLACE FUNCTION migration_tools.get_marc_tag (TEXT, TEXT, TEXT, TEXT) RETURNS TEXT AS $$
     my ($marcxml, $tag, $subfield, $delimiter) = @_;