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.