260 likes | 431 Vues
Voyager MARC Exports (with a major diversion into Oracle Stored Functions). Michael Doran, Systems Librarian University of Texas at Arlington doran@uta.edu. Voyager Developer Meeting March 9-10, 2011 Chicago, IL. Typical use cases: MARC dumps for discovery layer products
E N D
Voyager MARC Exports(with a major diversion into Oracle Stored Functions) Michael Doran, Systems Librarian University of Texas at Arlington doran@uta.edu Voyager Developer Meeting March 9-10, 2011 Chicago, IL
Typical use cases: • MARC dumps for discovery layer products • data dumps for ILS migrations • special projects Voyager Discovery Layer Product ???
Pmarcexport Voyager ------------------ export utilities
syntax: marcexport -o <marc output file> -r <record type> [A]uthority or [S]ubject or [M]ain or s[E]ries or [H]oldings or [B]ib or Bib-MFHD [G]roups -c <003 identifier> -s <040d identifier> -m <export mode> [M]ARC ID Input File or [I]SBN Input File or [R]ange of Marc Ids or [C]reated - Date Range or [U]pdated - Date Range or [B]oth Dates - Date Range or O[K] to Export - Date Range or [S]uppressed - Date Range or [E]xcluded - Date Range or e[X]cluded and suppressed - Date Range -t <target records for export based on export mode selected> beaucoup parameters
beaucoup parameters … continued -l export only records with this NUC code -L export only records with holdings for this location code -O export only OCLC -E <operator id> excluded records created by this operator id -X <fileexclude file> -R <fileexclude file> -i ignore suppressed records -n change LCCN to Control -q quiet/no prompts -w update holdings 852$a on export -a assign character mapping.. one of [R]LIN Legacy Encoding, [O]CLC, [M]ARC21 MARC-8, [L]ATIN1, or [V]oyager RLIN. -v version information] -y <USEMARCON bib marc translation> must specify ini file with this option. -h help
Pmarcexport is excellent… Pmarcexport if it does what you need …and allof what you need
Wouldn’t it be nice to have… • more fine-grained control over selection criteria of records to be exported • the ability to parse, modify and/or transform records on-the-fly as they are being exported
Pmarcexport sandwich (non-programmer edition) Access report bib IDs Pmarcexport MARC MarcEdit
Pmarcexport sandwich (programmer edition) Perl + DBI/DBD + SQL bib IDs Pmarcexport MARC Perl + MARC::Record
That works, but… …it’s neither elegant, nor efficient.
You could wrap it all into a single script Perl + DBI/DBD + SQL bib IDs Pmarcexport MARC Perl + MARC::Record
Perl + DBI/DBD + SQL bib IDs Pmarcexport MARC Perl + MARC::Record
Oracle Stored Functions • MARC Functions • Advanced MARC Functions GetAuthBlob(Auth_ID) GetBibBlob(Bib_ID) GetMFHDBlob(MFHD_ID) • Miscellaneous Functions
Analogous to the VB MARC functions in reports.mdb first available with Voyager 99.1 release …but better!
Documented in the… • Voyager releases • Voyager 99 • Voyager 2001 • Voyager Unicode • Voyager 5 • Voyager 6 • 6.1 • 6.2 • 6.3 • 6.4 • 6.5 • Voyager 7 • 7.1 • 7.2 Main MARC functions created in 1998/1999 (by James L. Godwin at the Library of Congress).
37 Voyager Oracle functions 25 documented in 6.5 Technical User’s Guide
Bib Data Record Segment Concatenator
37 Voyager Oracle functions 25 documented in 6.5 Technical User’s Guide
For an Oracle Stored Function to be used by the read-only Oracle user, it must be prefixed with the DB name.
Historical Manuscripts • Collection Project output file Bib blob Voyager Oracle MARC object MARC XML SQL 852 MFHD blob MARC object • Extract Bib records and their associated MFHDs • Convert Bib and MFHD “blobs” into MARC Record objects • Parse MFHD; get 852 and add to MARC Bib • Transform MARC records to marcxml and output to file