3 INSERT INTO config.upgrade_log (version) VALUES ('0518'); -- miker
4 CREATE OR REPLACE FUNCTION vandelay.marc21_extract_fixed_field( marc TEXT, ff TEXT ) RETURNS TEXT AS $func$
11 rtype := (vandelay.marc21_record_type( marc )).code;
12 FOR ff_pos IN SELECT * FROM config.marc21_ff_pos_map WHERE fixed_field = ff AND rec_type = rtype ORDER BY tag DESC LOOP
13 IF ff_pos.tag = 'ldr' THEN
14 val := oils_xpath_string('//*[local-name()="leader"]', marc);
15 IF val IS NOT NULL THEN
16 val := SUBSTRING( val, ff_pos.start_pos + 1, ff_pos.length );
20 FOR tag_data IN SELECT value FROM UNNEST( oils_xpath( '//*[@tag="' || UPPER(ff_pos.tag) || '"]/text()', marc ) ) x(value) LOOP
21 val := SUBSTRING( tag_data.value, ff_pos.start_pos + 1, ff_pos.length );
25 val := REPEAT( ff_pos.default_val, ff_pos.length );
31 $func$ LANGUAGE PLPGSQL;