RE: Where do you set NLS_LANG

From: Bobak, Mark <>
Date: Mon, 4 Jan 2010 09:47:07 -0500
Message-ID: <>

Hi Jeffrey,

NLS_LANG is all about telling the Oracle database (actually, the SQL*Net layer) about what character set the client program is using, so that it can do the proper translation to the database's characterset. (select VALUE from V$NLS_PARAMETERS where PARAMETER='NLS_CHARACTERSET';) Actually, in addition to declaring the character set, it declares the language and region. But, the point is, if you are executing programs that connect to Oracle, that's your client environment, regardless of whether that is happening from the database server or not. So, for example, if you login to the database server and run SQL*Plus to connect to the database, you should set NLS_LANG before doing so. It doesn't matter if that SQL*Plus connection is on the database server or on some other client machine connecting to the database. The "client environment" is wherever your program is executing and initiating a connection from.

Hope that helps,


From: [] On Behalf Of Jeffrey Beckstrom Sent: Monday, January 04, 2010 9:18 AM
To: oracle-l-freelists; oracle-db-l
Subject: Where do you set NLS_LANG

I am installing a third-party web application and the vendor is telling me to set NLS_LANG on the database server. From what I have read on MOS, NLS_LANG is a client side setting and thus should be on the web server.

Can someone confirm my reasoning that this belongs on the web server and not the database server?

Jeffrey Beckstrom
Database Administrator
Greater Cleveland Regional Transit Authority 1240 W. 6th Street
Cleveland, Ohio 44113

-- Received on Mon Jan 04 2010 - 08:47:07 CST

Original text of this message