Skip to content

Session NLS Parameters (nls_session_parameters.sql)

Displays the National Language Support (NLS) parameters that are currently active for the session. These settings control how dates, numbers, currencies, and text are formatted and processed within the current database session.

rem nls_session_parameters.sql
rem
ttitle 'Session NLS Parameters'
rem
col parameter format a30
col value format a30
rem
SELECT Parameter
, Value
FROM NLS_SESSION_PARAMETERS
ORDER BY 1
/
-- Display current session's NLS parameters
@nls_session_parameters.sql

The script requires no input parameters and shows all session-level NLS settings.

-- Usually available to all users
SELECT on NLS_SESSION_PARAMETERS
Session NLS Parameters
PARAMETER VALUE
------------------------------ ------------------------------
NLS_CALENDAR GREGORIAN
NLS_COMP BINARY
NLS_CURRENCY $
NLS_DATE_FORMAT DD-MON-RR
NLS_DATE_LANGUAGE AMERICAN
NLS_DUAL_CURRENCY $
NLS_ISO_CURRENCY AMERICA
NLS_LANGUAGE AMERICAN
NLS_LENGTH_SEMANTICS BYTE
NLS_NCHAR_CONV_EXCP FALSE
NLS_NUMERIC_CHARACTERS .,
NLS_SORT BINARY
NLS_TERRITORY AMERICA
NLS_TIMESTAMP_FORMAT DD-MON-RR HH.MI.SSXFF AM
NLS_TIMESTAMP_TZ_FORMAT DD-MON-RR HH.MI.SSXFF AM TZR
NLS_TIME_FORMAT HH.MI.SSXFF AM
NLS_TIME_TZ_FORMAT HH.MI.SSXFF AM TZR

Date and Time Parameters

  • NLS_DATE_FORMAT: How dates are displayed by default
  • NLS_TIMESTAMP_FORMAT: Timestamp display format
  • NLS_TIME_FORMAT: Time portion display format
  • NLS_DATE_LANGUAGE: Language for month/day names

Numeric and Currency Parameters

  • NLS_NUMERIC_CHARACTERS: Decimal point and thousands separator
  • NLS_CURRENCY: Local currency symbol
  • NLS_ISO_CURRENCY: ISO standard currency code
  • NLS_DUAL_CURRENCY: Alternative currency symbol

Language and Territory Parameters

  • NLS_LANGUAGE: Default language for error messages
  • NLS_TERRITORY: Geographic territory setting
  • NLS_SORT: Character sorting method
  • NLS_COMP: String comparison method

Character Semantics

  • NLS_LENGTH_SEMANTICS: BYTE or CHAR length semantics
  • NLS_NCHAR_CONV_EXCP: NCHAR conversion exception handling

Session Configuration Verification

-- Check current session's NLS settings
@nls_session_parameters.sql
-- Verify settings match application requirements

Date Format Troubleshooting

-- Investigate unexpected date displays
@nls_session_parameters.sql
-- Check NLS_DATE_FORMAT setting

Application Debug

-- Debug application-specific formatting issues
@nls_session_parameters.sql
-- Verify NLS settings for current connection

Multi-User Environment Analysis

-- Check session-specific NLS overrides
@nls_session_parameters.sql
-- Compare with instance defaults

Development Testing

-- Verify NLS settings during testing
@nls_session_parameters.sql
-- Ensure consistent behavior across sessions

Change Session Settings

-- Modify session NLS parameters
ALTER SESSION SET NLS_DATE_FORMAT = 'MM/DD/YYYY';
ALTER SESSION SET NLS_LANGUAGE = 'FRENCH';
ALTER SESSION SET NLS_TERRITORY = 'FRANCE';
-- Verify changes
@nls_session_parameters.sql

Reset to Defaults

-- Reset specific parameter
ALTER SESSION SET NLS_DATE_FORMAT = '';
-- Reset multiple parameters
ALTER SESSION SET NLS_LANGUAGE = 'AMERICAN';
ALTER SESSION SET NLS_TERRITORY = 'AMERICA';

Display Formatting

  • How data appears in query results
  • Default formats for dates, numbers, currencies
  • Affects SELECT statement output

Data Conversion

  • How string data is converted to dates/numbers
  • Implicit conversion behavior
  • INSERT/UPDATE statement processing

Sorting and Comparison

  • ORDER BY clause behavior
  • String comparison operations
  • Index usage and performance

Error Messages

  • Language for Oracle error messages
  • Territory-specific formatting

Query Results

  • Date and number display formats
  • Currency symbol appearance
  • Character sorting order

Data Entry

  • Date string interpretation
  • Numeric input processing
  • Currency value handling

Report Generation

  • Consistent formatting requirements
  • Locale-specific display needs
  • Multi-language support

Explicit Formatting

-- Use explicit format masks for critical data
SELECT TO_CHAR(order_date, 'YYYY-MM-DD') FROM orders;
SELECT TO_NUMBER(price, '999.99') FROM products;

Session Initialization

-- Set consistent NLS parameters in login scripts
ALTER SESSION SET NLS_DATE_FORMAT = 'YYYY-MM-DD HH24:MI:SS';
ALTER SESSION SET NLS_NUMERIC_CHARACTERS = '.,';

Application Development

  • Don’t rely solely on default NLS settings
  • Test applications with different NLS configurations
  • Use explicit format specifications for critical operations
  • Minimal: Simple query on system view
  • No Overhead: Read-only operation
  • Instantaneous: Fast execution
  • nls_parms - NLS parameters at all levels
  • Session configuration and initialization scripts
  • Application setup and configuration utilities