X-Git-Url: http://git.equinoxoli.org/?p=migration-tools.git;a=blobdiff_plain;f=sql%2Fkoha%2Fmarc_functions.sql;fp=sql%2Fkoha%2Fmarc_functions.sql;h=08d5e8ec421100e47ef69ab5b49c36294e978fc8;hp=0000000000000000000000000000000000000000;hb=8bf3f76bd343179da9aa93f88f1c37a018b74ac4;hpb=6320c3392e8cdf8b1365f7d3bd68342171fb59f9 diff --git a/sql/koha/marc_functions.sql b/sql/koha/marc_functions.sql new file mode 100644 index 0000000..08d5e8e --- /dev/null +++ b/sql/koha/marc_functions.sql @@ -0,0 +1,27 @@ + +-- pass it the biblionumber, the position of the character to start in the leader starting at 0 +-- and the text to replace, single characer or multiple +DROP FUNCTION IF EXISTS m_update_leader; +DELIMITER $ +CREATE FUNCTION + m_update_leader(bnumber INTEGER, ldr_position SMALLINT, new_value TEXT) + RETURNS BOOLEAN + DETERMINISTIC + BEGIN + DECLARE ldr TEXT COLLATE utf8mb4_unicode_ci DEFAULT NULL; + DECLARE new_value_length SMALLINT DEFAULT 1; + SET ldr_position = ldr_position + 1; + SET new_value_length = LENGTH(new_value); + + SELECT ExtractValue(metadata, '//leader') INTO ldr FROM biblio_metadata WHERE biblionumber = bnumber; + SET ldr = INSERT(ldr,ldr_position,new_value_length,new_value); + SET ldr = CONCAT('',ldr,''); + + UPDATE biblio_metadata SET metadata = UpdateXML(metadata, '//leader', ldr) where biblionumber = bnumber; + RETURN TRUE; + + END +$ +DELIMITER ; + +