VMS Help  —  SOR Routines, SOR$SORT_MERGE
    The SOR$SORT_MERGE routine sorts the input records.

    Format

      SOR$SORT_MERGE  [context]

1  –  Returns

    OpenVMS usage:cond_value
    type:         longword (unsigned)
    access:       write only
    mechanism:    by value

    Longword condition value. Most utility routines return a
    condition value in R0. Condition values that this routine can
    return are listed under Condition Values Returned.

2  –  Argument

 context

    OpenVMS usage:context
    type:         longword (unsigned)
    access:       modify
    mechanism:    by reference
    Value that distinguishes between multiple, concurrent SORT/MERGE
    operations. The context argument is the address of a longword
    containing the context value. When your program makes its first
    call to a SORT/MERGE routine for a particular sort or merge
    operation, the context longword must equal zero. SORT/MERGE
    then stores a value in the longword to identify the operation
    just initiated. When you make subsequent routine calls for the
    same operation, you must pass the context value supplied by
    SORT/MERGE.

3  –  Description

    After you have passed either the file names or the records to
    SORT, call the SOR$SORT_MERGE routine to sort the records. For
    file interface on input, the input files are opened and the
    records are released to the sort. For the record interface on
    input, the record must have already been released (by calls
    to SOR$RELEASE_REC). For file interface on output, the output
    records are reformatted and directed to the output file. For the
    record interface on output, SOR$RETURN_REC must be called to get
    the sorted records.

    Some of the return values are used with different severities
    depending on whether SORT/MERGE can recover. Thus, if you want to
    check for a specific status, you should use LIB$MATCH_COND.

4  –  Condition Values Returned

    SS$_NORMAL         Normal successful completion.
    SOR$_BADDTYPE      Invalid or unsupported CDD data type.
    SOR$_BADLENOFF     Length and offset must be multiples of 8 bits.
    SOR$_BADLOGIC      Internal logic error detected.
    SOR$_BADOCCURS     Invalid OCCURS clause.
    SOR$_BADOVRLAY     Invalid overlay structure.
    SOR$_BADPROTCL     Node is an invalid CDD object.
    SOR$_BAD_LRL       Record length n greater than longest specified
                       record length.
    SOR$_BAD_TYPE      Invalid sort process specified.
    SOR$_CDDERROR      CDD error at node name.
    SOR$_CLOSEIN       Error closing file as input.
    SOR$_CLOSEOUT      Error closing file as output.
    SOR$_COL_CHAR      Invalid character definition.
    SOR$_COL_CMPLX     Collating sequence is too complex.
    SOR$_COL_PAD       Invalid pad character.
    SOR$_COL_THREE     Cannot define 3-byte collating values.
    SOR$_ENDDIAGS      Completed with diagnostics.
    SOR$_EXTEND        Unable to extend work file for needed space.
    SOR$_ILLBASE       Nondecimal base is invalid.
    SOR$_ILLLITERL     Record containing symbolic literals is
                       unsupported.
    SOR$_ILLSCALE      Nonzero scale invalid for floating-point data
                       item.
    SOR$_INCDIGITS     Number of digits is inconsistent with the type
                       or length of item.
    SOR$_INCNODATA     Include specification references no data
                       keyword, at line n.
    SOR$_INCNOKEY      Include specification references no keys
                       keyword, at line n.
    SOR$_IND_OVR       Indexed output file must already exist.
    SOR$_KEYED         Mismatch between SORT/MERGE keys and primary
                       file key.
    SOR$_LRL_MISS      Longest record length must be specified.
    SOR$_MISLENOFF     Length and offset required.
    SOR$_MULTIDIM      Invalid multidimensional OCCURS.
    SOR$_NOTRECORD     Node name is a name, not a record definition.
    SOR$_NO_WRK        Work files required, cannot do sort in memory
                       as requested.
    SOR$_OPENIN        Error opening file as input.
    SOR$_OPENOUT       Error opening file as output.
    SOR$_OPERFAIL      Error requesting operator service.
    SOR$_READERR       Error reading file.
    SOR$_REQ_ALT       Specify alternate name file (or nothing to try
                       again).
    SOR$_RTNERROR      Unexpected error status from user-written
                       routine.
    SOR$_SIGNCOMPQ     Absolute Date and Time data type represented
                       in 1-second units.
    SOR$_SORT_ON       Sort or merge routines called in incorrect
                       order.
    SOR$_SPCIVC        Invalid collating sequence specification, at
                       line n.
    SOR$_SPCIVD        Invalid data type, at line n.
    SOR$_SPCIVF        Invalid field specification, at line n.
    SOR$_SPCIVI        Invalid include or omit specification, at line
                       n.
    SOR$_SPCIVK        Invalid key or data specification, at line n.
    SOR$_SPCIVP        Invalid sort process, at line n.
    SOR$_SPCIVS        Invalid specification, at line n.
    SOR$_SPCIVX        Invalid condition specification, at line n.
    SOR$_SPCMIS        Invalid merge specification, at line n.
    SOR$_SPCOVR        Overridden specification, at line n.
    SOR$_SPCSIS        Invalid sort specification, at line n.
    SOR$_SRTIWA        Insufficient space. Specification file is too
                       complex.
    SOR$_SYSERROR      System service error.
    SOR$_UNSUPLEVL     Unsupported core level for record name.
    SOR$_USE_ALT       Using alternate file name.
    SOR$_WORK_DEV      Work file name must be on random access local
                       device.
    SOR$_WRITEERR      Error writing file.
Close Help