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
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
  • 3
LVL 48

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 48

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 48

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

Free Tool: SSL Checker

Scans your site and returns information about your SSL implementation and certificate. Helpful for debugging and validating your SSL configuration.

One of a set of tools we are providing to everyone as a way of saying thank you for being a part of the community.

Question has a verified solution.

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

Suggested Solutions

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 1) Part 2: So, you upgraded to a shiny new 11g database and all of a sudden every program that used UTL_MAIL, UTL_SMTP, UTL_TCP, UTL_HTTP or any oth…
This video shows information on the Oracle Data Dictionary, starting with the Oracle documentation, explaining the different types of Data Dictionary views available by group and permissions as well as giving examples on how to retrieve data from th…
Via a live example, show how to restore a database from backup after a simulated disk failure using RMAN.

733 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