Skip to main content

This is documentation for Caché & Ensemble.

For information on converting to InterSystems IRIS, see the InterSystems IRIS Adoption Guide and the InterSystems IRIS In-Place Conversion Guide, both available on the WRC Distributions page (login required).

Previous sectionNext section


Lowers MultiValue dynamic array delimiters to next level.




Argument Description
dynarray Any valid MultiValue dynamic array.


The $MVLOWER function returns a MultiValue dynamic array with its delimiters converted to the next lower-level delimiters. For example, @VM value mark delimiters become @SM subvalue mark delimiters. When a delimiter cannot be lowered any further, it is returned unchanged.

The available levels, in descending order, are: @IM (CHAR(255)); @FM (CHAR(254)); @VM (CHAR(253)); @SM (CHAR(252)); @TM (CHAR(251)); and CHAR(250).

The ObjectScript $MVLOWER function corresponds to the Cache MultiValue Basic LOWER function. The $MVRAISE function performs the opposite operation, raising the level of dynamic array delimiters to the next higher level.


The following example uses the $MVLOWER function to convert dynamic array delimiters to the next lower level. It then uses the $MVRAISE function to reverse this operation:

  SET numvm="123"_$CHAR(253)_"456"_$CHAR(253)_"789"
  ZZDUMP numvm       /* Returns 123v456v789 */
  SET numlower=$MVLOWER(numvm)
  ZZDUMP numlower    /* Returns 123s456s789 */
  SET numraise=$MVRAISE(numlower)
  ZZDUMP numraise    /* Returns 123v456v789 */
Copy code to clipboard

See Also