From: Galen Charlton Date: Tue, 24 Jul 2012 19:25:58 +0000 (-0400) Subject: simple stored function to check parseability of MARCXML blobs X-Git-Url: http://git.equinoxoli.org/?p=migration-tools.git;a=commitdiff_plain;h=66620b64f7d28ec1294258594d458697258d722e simple stored function to check parseability of MARCXML blobs Signed-off-by: Galen Charlton --- diff --git a/sql/base/base.sql b/sql/base/base.sql index ab7b654..deeaa3c 100644 --- a/sql/base/base.sql +++ b/sql/base/base.sql @@ -1625,4 +1625,23 @@ END; $$ LANGUAGE plpgsql; +CREATE OR REPLACE FUNCTION migration_tools.marc_parses( TEXT ) RETURNS BOOLEAN AS $func$ + +use MARC::Record; +use MARC::File::XML (BinaryEncoding => 'UTF-8'); +use MARC::Charset; + +MARC::Charset->assume_unicode(1); + +my $xml = shift; + +eval { my $r = MARC::Record->new_from_xml( $xml ); }; +if ($@) { + return 0; +} else { + return 1; +} + +$func$ LANGUAGE PLPERLU; +COMMENT ON FUNCTION migration_tools.marc_parses(TEXT) IS 'Return boolean indicating if MARCXML string is parseable by MARC::File::XML';