ESRI.com | Customer Service | Training | More ESRI Sites...

SDE Connection

 
Oracle Corporate Support
Global Solution Exchange (GSX)
Copyright(c) Oracle Corporation 1998. All Rights Reserved.


1. Prob# 1025330.6 ORA-12705: WHEN RUNNING A 7.3.X CLIENT PRODUCT WITH NLS
2. Soln# 2073009.6 SET NLS_LANG TO A VALID VALUE AND VERIFY LOCATION OF OR


1. Prob# 1025330.6 ORA-12705: WHEN RUNNING A 7.3.X CLIENT PRODUCT WITH NLS

Problem ID : 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:
ORA-12705: WHEN RUNNING A 7.3.X CLIENT PRODUCT WITH NLS_LANG SET

+=+

Problem Description:
====================

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.


Additional Information:
=======================

Oracle Documentation:
---------------------

Oracle7 Installation Guide, Release 7.3 - Appendix A
Oracle7 Server Reference Manual, Release 7.3 - Chapter 4
Developer/2000 Installation and Configuration Guide,
Release 1.0 - Chapter 5
Developer/2000 Installation Guide, Release 1.3 - Chapter 5

+==+



Copyright © ESRI. Send your comments to: Site Administrator. PRIVACY
This website's graphical display is now viewable only with W3C standards-compliant browsers, but the content is accessible to all browsers and Internet devices. View our supported browser matrix for more information on our website display.