adding m_ for koha functions and an update_leader function
[migration-tools.git] / sql / koha / marc_functions.sql
1
2 -- pass it the biblionumber, the position of the character to start in the leader starting at 0 
3 -- and the text to replace, single characer or multiple 
4 DROP FUNCTION IF EXISTS m_update_leader;
5 DELIMITER $
6 CREATE FUNCTION
7    m_update_leader(bnumber INTEGER, ldr_position SMALLINT, new_value TEXT)
8    RETURNS BOOLEAN
9    DETERMINISTIC
10     BEGIN
11         DECLARE ldr TEXT COLLATE utf8mb4_unicode_ci DEFAULT NULL;
12         DECLARE new_value_length SMALLINT DEFAULT 1;
13         SET ldr_position = ldr_position + 1;
14         SET new_value_length = LENGTH(new_value);
15         
16         SELECT ExtractValue(metadata, '//leader') INTO ldr FROM biblio_metadata WHERE biblionumber = bnumber;
17         SET ldr = INSERT(ldr,ldr_position,new_value_length,new_value);
18         SET ldr = CONCAT('<leader>',ldr,'</leader>');
19
20         UPDATE biblio_metadata SET metadata = UpdateXML(metadata, '//leader', ldr) where biblionumber = bnumber;
21         RETURN TRUE;
22         
23     END
24 $
25 DELIMITER ;
26
27