Solved

ora-12705

Posted on 1998-09-14
2
5,108 Views
Last Modified: 2010-05-18
I get this error when logging into my db.  Another users PC appears to be setup identically and works.  The message reads "invalid or unknown NLS parameter value specified"
0
Comment
Question by:petkuscx
2 Comments
 
LVL 3

Accepted Solution

by:
junfeb earned 100 total points
ID: 1081535
Here is some documentation and help for your problem -

set the environmental variable NLS_LANG to a valid
value before starting the client product. If
NLS_LANG is set correctly, ensure ORA_NLS32 is set
to the directory where the NLSRTL r3.2 boot files
are located.

The automatic ALTER SESSION done during login will
return an ORA-12705 error if an invalid value for
NLS_LANG is specified, and the login will not
proceed. The check is against the valid values
for the client-side product you are using, not the
valid values for the Oracle7 server. The valid
values for the client and the server may not be
identical.

This error may also occur if NLS_LANG is specified
correctly, but the environmental variable ORA_NLS32
does not refer to the proper NLS boot files.

ORA-12705: "invalid or unknown NLS parameter value
specified"
// *Cause: There are two possible causes: Either
an attempt was made to issue an ALTER SESSION
statement with an invalid NLS parameter or value;
or the NLS_LANG environment variable contains an
invalid language, territory, or character set.
// *Action: Check the syntax of the ALTER SESSION
command and the NLS parameter, correct the syntax
and retry the statement, or specify correct values
in the NLS_LANG environment variable.


--------------------------------------


An ORA-12705 error is raised when trying to connect using a 7.3.x  
client product to any version of Oracle7 server when the NLS_LANG  
environmental variable is set.
 
  The set of client products can include any of the following:
 
    - SQL*Plus r3.3.x
    - Server Manager r2.3.x
    - Precompiler and OCI programs that has been linked  
      with Oracle7 Server Release 7.3.x libraries  
    - Developer/2000 r1.3 products
 
 
  This is an example of the error with SQL*Plus:
 
    % setenv NLS_LANG invalid_value
    % sqlplus system/manager
    ERROR: ORA-12705: invalid or unknown NLS parameter  
    value specified
 
 
Server Manager
--------------
 
The problem shows differently with Server Manager when connecting  
INTERNAL, or when connecting as SYSOPER or SYSDBA.  The connect is  
successful, but any attempt to access the database will fail.
 
The initial CONNECT shows the message "Connected to an idle instance."  
The following message is returned whether the instance is already  
running or not:
 
    % setenv NLS_LANG invalid_value
    % svrmgrl
    SVRMGR> connect INTERNAL
    Connected to an idle instance.
 
            - OR -
 
    % svrmgrl
    SVRMGR> connect system/manager as SYSDBA
    Connected to an idle instance.
 
    NOTE:  The instance is running in this example, despite  
           the "Connected to an idle instance" message.
 
If the instance is already running, suppose another startup is issued.  
The following errors are returned:
 
    SVRMGR> startup
    LCC-00161: ORACLE error (possible syntax error) parameter [NULL]
    ORA-01031: insufficient privileges
 
If the instance is not running and startup is issued, the instance  
starts, the following error is returned:
 
    SVRMGR> startup
    ORACLE instance started.
    ORA-01012: not logged on
 
 
If connecting normally (not SYSDBA or SYSOPER) as any user other  
than INTERNAL, ORA-12705 is returned.
 
 
 
Problem Explanation:
====================
 
The automatic ALTER SESSION done during login will return an  
ORA-12705 error if an invalid value for NLS_LANG is specified, and  
the login will not proceed.  The check is against the valid values  
for the client-side product you are using, not the valid values for  
the Oracle7 server.  The valid values for the client and the server  
may not be identical.
 
This error may also occur if NLS_LANG is specified correctly, but the
environmental variable ORA_NLS32 does not refer to the proper NLS boot  
files.  
 
ORA-12705:  "invalid or unknown NLS parameter value specified"
// *Cause:  There are two possible causes:  Either an attempt was made  
            to issue an ALTER SESSION statement with an invalid NLS  
            parameter or value; or the NLS_LANG environment variable  
            contains an invalid language, territory, or character set.
// *Action: Check the syntax of the ALTER SESSION command and the NLS
            parameter, correct the syntax and retry the statement, or  
            specify correct values in the NLS_LANG environment  
            variable.
 
ORA-01012:  "not logged on"
// *Cause:  A host language program issued an Oracle call, other than  
            OLON or OLOGON, without being logged on to Oracle.  This  
            can occur when a user process attempts to access the  
            database after the instance it is connected to terminates,  
            forcing the process to disconnect.
// *Action: Log on to Oracle, by calling OLON or OLOGON, before  
            issuing any Oracle calls.  When the instance has been  
            restarted, retry the action.  
 
ORA-01031:  "insufficient privileges"
// *Cause:  an attempt was made to change the current username or  
            password without the appropriate privilege.  This error  
            also occurs if attempting to UPDATE a table with only  
            SELECT privileges, if attempting to CONNECT INTERNAL, or  
            if attempting to install a database without the necessary  
            operating-system privileges.
 
            When Trusted Oracle7 is configured in DBMS MAC, this error  
            may occur if the user was granted the necessary privilege  
            at a higher label than the current login.  
// *Action: Ask the database administrator to perform the operating or  
            grant the required privileges.
 
            For Trusted Oracle7 users getting this error although  
            granted the appropriate privilege at a higher label, ask  
            the database administrator to regrant the privilege at the
            appropriate label.
 
LCC-00161:  "Oracle error (possible syntax error) parameter <name>
// *Cause:  A parameter was specified incorrectly, possible with a  
            syntax error.
// *Action: Correct the error as described in the accompanying  
            message.  
 
 
Problem References:
===================
 
Oracle Documentation:
---------------------
 
Oracle7 server SQL Reference, "ALTER SESSION command"
 
 
Additional Search Words:
========================
 
ORA_NLS, ORA_NLS32, ORA-1012, ORA-1031, LCC-161, d2k, dev2k
nlslang
 
 


+==+

Diagnostics and References:

 * {515.6,Y,100}     TRYING TO CONNECT TO A DATABASE
 * {7350.6,Y,100}     ORA-12705: INVALID OR UNKNOWN NLS PARAMETER VALUE SPECIFIED
 * {8557.4,Y,100}     LCC-00161: ORACLE ERROR (POSSIBLE SYNTAX ERROR) PARAMETER <%.*S>
 * {8664.4,Y,100}     ORA-01012: NOT LOGGED ON
 * {8665.4,Y,100}     ORA-01031: INSUFFICIENT PRIVILEGES
 * {8666.4,Y,100}     NLS_LANG ENVIRONMENT VARIABLE


2. Soln# 2073009.6  SET NLS_LANG TO A VALID VALUE AND VERIFY LOCATION OF OR

Solution ID         : 2073009.6
For Problem         : 1025330.6
Affected Platforms  : Generic: not platform specific
Affected Products   : Oracle Server - Enterprise Edition V7
Affected Components : RDBMS V07.03.XX
Affected Oracle Vsn : V07.03.XX

Summary:
SET NLS_LANG TO A VALID VALUE AND VERIFY LOCATION OF ORA_NLS32

+=+

Solution Description:
=====================
 
Set the environmental variable NLS_LANG to a valid value before  
starting the client product.  If NLS_LANG is set correctly, ensure  
ORA_NLS32 is set to the directory where the NLSRTL r3.2 boot files  
are located.
 
NLS_LANG
--------
 
NLS_LANG must be set to a value that is supported by the client  
product.  The Installation Guide for the client product contains  
a list of valid NLS_LANG values for that particular product.  If  
the product was distributed with the Oracle7 Server (e.g., SQL*Plus)  
all the values specified in the Installation Guide for the Oracle7  
Server are valid.
 
NOTE:  The set of valid values for a specific Oracle7 Server release  
       can be different from that for a specific client-side product  
       release, for example Developer/2000.  This arises because each  
       product may be using different releases of the NLS RunTime  
       Library (NLSRTL) and/or releases for different platforms.
 
An example of a valid setting for NLS_LANG for the client  
environment is:
 
   For the C shell:
 
     % setenv NLS_LANG american_america.us7ascii
 
   For the Bourne or Korn shell:
 
     $ NLS_LANG=american_america.us7ascii
     $ export NLS_LANG
 
 
V$NLS_VALID_VALUES
------------------
 
The data dictionary fixed table V$NLS_VALID_VALUES returns all valid  
language, territory, sorting sequence and character encoding scheme  
names for that specific SERVER release (not the client release).
 
 
ORA_NLS32
---------
 
If NLS_LANG is set correctly, ensure ORA_NLS32 is set to the directory  
where the NLSRTL r3.2 boot files are located.  If ORA_NLS32 is not  
set, the default location the client product will access is
"$ORACLE_HOME/ocommon/nls/admin/data".
 
An example of a valid directory setting for ORA_NLS32 is:
 
   For the C shell:
 
     % setenv ORA_NLS32 $ORACLE_HOME/ocommon/nls/admin/data
 
   For the Bourne or Korn shell:
 
     $ ORA_NLS32=$ORACLE_HOME/ocommon/nls/admin/data
     $ export ORA_NLS32
 
 
 
Solution Explanation:
=====================
 
An invalid value for NLS_LANG prior to Oracle7 Server Releases  
7.0, 7.1, and 7.2 is replaced by a default value, usually
"American_America.US7ASCII".  Allowing NLS_LANG to default can  
cause unexpected behavior when the default <character encoding  
scheme> is not the one intended.
 
Oracle7 Server Release 7.3 products (and any client products built  
with those libraries) return an error message if NLS_LANG is invalid,  
and logon will not proceed.
 
 
V$NLS_VALID_VALUES
------------------
 
It is important to realize that V$NLS_VALID_VALUES only tells you what  
is supported by that Server release, and any products using the same  
version of NLSRTL (on that platform) that the Server does.  It is a  
safe assumption that this applies, for example, to Server Manager,  
Import and Export.  It may not be such a safe assumption for products  
such as Developer/2000, even if these products are running on the same  
platform.  There is no direct way to find out which character encoding  
schemes, for example, are supported by a specific release of Oracle  
Forms, other than checking the Installation Guide, release notes  
and/or Oracle Worldwide Support.  

Hope this helps
 

0
 

Author Comment

by:petkuscx
ID: 1081536
Thank you for your help!  All my searches could not come up with all that detail, that is exactly the info I needed.
0

Featured Post

PRTG Network Monitor: Intuitive Network Monitoring

Network Monitoring is essential to ensure that computer systems and network devices are running. Use PRTG to monitor LANs, servers, websites, applications and devices, bandwidth, virtual environments, remote systems, IoT, and many more. PRTG is easy to set up & use.

Join & Write a Comment

Suggested Solutions

Title # Comments Views Activity
Stay Alert! 13 62
Adding a blank row when using union all 4 49
Oracle DATE Column Space 11 44
dates - loop 12 41
This article started out as an Experts-Exchange question, which then grew into a quick tip to go along with an IOUG presentation for the Collaborate confernce and then later grew again into a full blown article with expanded functionality and legacy…
Working with Network Access Control Lists in Oracle 11g (part 2) Part 1: http://www.e-e.com/A_8429.html Previously, I introduced the basics of network ACL's including how to create, delete and modify entries to allow and deny access.  For many…
This video shows how to copy a database user from one database to another user DBMS_METADATA.  It also shows how to copy a user's permissions and discusses password hash differences between Oracle 10g and 11g.
This video shows how to configure and send email from and Oracle database using both UTL_SMTP and UTL_MAIL, as well as comparing UTL_SMTP to a manual SMTP conversation with a mail server.

705 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

19 Experts available now in Live!

Get 1:1 Help Now