MX_DECIMAL_SYMBOL and System Decimal Symbol

You can define the character used as a decimal indicator.

Collaboration and Approvals has two distinct controls for the handling of period '.' or comma ',' as the decimal symbol for real numbers:

  • The set system decimal command determines how real values must be formatted to pass them to an Oracle database.
  • The MX_DECIMAL_SYMBOL environment setting controls the format in which real numbers are returned as values in print statements, queries, expands, and selectables. This affects the strings returned by both MQL commands and Java ADK calls. The final display format can be further adjusted by application preferences and/or browser settings. This setting has no effect on the form of real numbers passed to database APIs, nor does it have to be the same as the "set system decimal" character.

The decimal separator mechanism works as follows:

  • When accepting a real number as input to the database, the kernel replaces the decimal separator in real-number inputs with the "set system decimal" character before passing them along to the database server.
  • When reading a real number from the database and returning it to the calling application, the kernel substitutes the decimal separator in real numbers with the MX_DECIMAL_SYMBOL character.

Because the "set system decimal" character controls the form in which you interact with the database server, this setting must be synchronized with the Oracle setting for NLS_LANG so that real numbers are passed in a form that is expected by the database interfaces.

Use the following MQL command to set the decimal character that is expected by the database server (according to the NLS_LANG setting):

set system decimal CHARACTER;

where CHARACTER can be . or , [period or comma].

For example, to set the system decimal to a comma, use:

set system decimal ,;

When setting the system decimal character, be sure to use the setting that is implied by the database's NLS_LANG setting. The default setting is a period '.'. So, if the database setting for NLS_LANG is AMERICAN_AMERICA.WE8ISO8859P15, Oracle expects a period for the decimal symbol (as indicated by the territory setting of AMERICA), and 3DSpace makes the necessary conversion, once the following command is run:

set system decimal .;

When exporting business objects, MX_DECIMAL_SYMBOL influences the format of real numbers written to the export file. Therefore, the user who imports the file should set MX_DECIMAL_SYMBOL in the same way or errors will occur.

The command set system decimal CHARACTER; is not supported for use with databases other than Oracle. For non-Oracle databases, the data is always stored with '.' but displayed based on the desktop client's MX_DECIMAL_SYMBOL setting, or in Web-based implementations, the locale of the browser.

For more information about configuring 3DSpace for multiple language support, see the following topics:

  • Configuring Live Collaboration: Localizing Live Collaboration
  • 3DSpace Server: Language Support
  • 3DSpace Server: Configuring a Japanese Web Environment