how to determine the oracle version and default character encoding?

Posted on 2003-10-22
Last Modified: 2011-08-18
Is there an easy way for somebody connected to an Oracle instance running on a host somewhere to determine 1) the version of Oracle that it's running under and 2) the default character encoding (UTF8, ISO-8859-1, ASCII7, etc)? I assume the values are stored and selectable in Oracle's housekeeping pseudo-tables, but don't have any idea which one(s).

Specifically... suppose I'm connected to the Oracle instance 'foo.database' running on the host '' as the user 'bar' using SQL*Plus.

Suppose further that I need to create a table that contains an XMLType field, and I've learned the hard way that using XMLType fields in databases whose encoding ISN'T UTF-8 is just begging for grief and trouble, and that 9.2 fixes lots of bugs with XMLType that Oracle never fixed in 9.0.

Finally, assume it's 3am on Monday morning with a demo looming at noon, the DBA is sound asleep, and I have access to nearly a dozen running instances of Oracle on nearly a half-dozen hosts, running everything from 8i to 9.2i... most using Windows native character encoding (WEI-*?), a couple using ISO-8859-1, and a few using UTF-8. Before I waste an hour setting up the new tables, stored procedures, sequences, and triggers, I want to make sure I'm actually connected to a UTF8-encoded instance running 9.2. How?
Question by:jskubick
  • 3
LVL 47

Expert Comment

ID: 9599048
1. Version (as user SYS)
select * from v$version;

2 Character set

SQL> connect system/manager@lin1
SQL> select value from nls_database_parameters where parameter='NLS_CHARACTERSET';
SQL> select value from nls_database_parameters where parameter='NLS_NCHAR_CHARACTERSET';
LVL 23

Assisted Solution

seazodiac earned 25 total points
ID: 9599050
to know the version of oracle:

in the sqlplus window:

SQL> select * from v$version;

to know that characterset encoding of oracle database:

SQL> show parameter NLS

LVL 47

Accepted Solution

schwertner earned 100 total points
ID: 9599119
Looking at this and at the above entry it is easy to understatand where youa are connenected,

SQL> connect sys/manager@test as sysdba
SQL> select * from v$version;

Oracle9i Enterprise Edition Release - Production
PL/SQL Release - Production
CORE       Production
TNS for 32-bit Windows: Version - Production
NLSRTL Version - Production


if you add the following statement it will be easy to know also the name of instance and possibly some parameters of the instance;
SQL> show parameter db_name;

NAME                                 TYPE        VALUE
------------------------------------ ----------- -------------------
db_name                              string      test

Author Comment

ID: 9599121
OK, "select * from v$version;" worked :-)

Unfortunately, "show parameter NLS" didn't quite do the trick... it just indicated that various parameters are of type "string"... a few of which had values of "AMERICA", "BYTE", or "FALSE" (most had no value).

What I need to know is the database's default encoding... ie, UTF8, WEISOWIN12 (I'm sure I mangled that one... it's the default windows character encoding), ASCII7, etc.
LVL 47

Expert Comment

ID: 9599269
You are to fast and do not read what I mentioned:

SQL> select value from nls_database_parameters where parameter='NLS_CHARACTERSET';
SQL> select value from nls_database_parameters where parameter='NLS_NCHAR_CHARACTERSET';

This definitelly showa the character set of the DATABASE.

Featured Post

Is Your Active Directory as Secure as You Think?

More than 75% of all records are compromised because of the loss or theft of a privileged credential. Experts have been exploring Active Directory infrastructure to identify key threats and establish best practices for keeping data safe. Attend this month’s webinar to learn more.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Suggested Solutions

Title # Comments Views Activity
alter database link to change the password 2 55
What is the version of ojdbc6.jar 2 41
join 2 views with 5 conditions 3 46
Oracle SQL syntax check  without executing 6 39
Working with Network Access Control Lists in Oracle 11g (part 2) Part 1: 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 post first appeared at Oracleinaction  ( Anju Garg (Myself). I  will demonstrate that undo for DML’s is stored both in undo tablespace and online redo logs. Then, we will analyze the reaso…
This video shows, step by step, how to configure Oracle Heterogeneous Services via the Generic Gateway Agent in order to make a connection from an Oracle session and access a remote SQL Server database table.
This video shows how to copy an entire tablespace from one database to another database using Transportable Tablespace functionality.

863 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

18 Experts available now in Live!

Get 1:1 Help Now