Kbase 15536: 7.3D ORACLE: Debugging calls with insert and select problems
Autor |
  Progress Software Corporation - Progress |
Acesso |
  Público |
Publicação |
  5/10/1998 |
|
7.3D ORACLE: Debugging calls with insert and select problems
The following are notes to assist in the debugging of DBE
Dataserver calls where the customer has problems selecting
or inserting data into the ORACLE database through a Progress
client.
You should note that ORACLE will not display any error messages.
In some cases erroneous or garbage data will be insterted into
the Database which makes debugging the problem difficult.
. Make sure during the actual ORACLE installation that
ALL LANGUAGES was selected.
You can check this by having the customer cd to
$ORACLE_HOME/orainst and grep for "ALL" on the install.log.
Typically during an ORACLE install the customer will just hit
a return on most of the questions. In this case if the
customer hits a return they will get the default which is
AMERICAN ENGLISH. Example:
$cd $ORACLE_HOME/orainst
$grep "ALL" install.log
# ORACLE INSTALLATION #
(If you are licensed to use Multilingual Option,
select 'ALL LANGUAGES')
A> ALL LANGUAGES
# ORACLE INSTALLATION #
(If you are licensed to use Multilingual Option, select
'ALL LANGUAGES')
A> ALL LANGUAGES
. Make sure the ORACLE Database has been created with
the appropriate language and territory defaults.
You can check this by having the customer go into
SQLDBA and enter the commands SHOW PARAMETER nls_language
and SHOW PARAMETER nls_territory. (make sure the
ORACLE_SID is set before executing SQLDBA and the customer
has the appropriate dba privs) Example:
$sqldba lmode=y system/manager
SQLDBA> connect internal
SQLDBA> show parameter nls_language
?O ^ l
----------------------------------- ------- --------
nls_language string japanese
SQLDBA> show parameter nls_territory
?O ^ l
----------------------------------- ------- --------
nls_territory string japan
. Make sure the NLS_LANG enviroment variable is set for the
Progress Client. If it is not set you will not get an error,
Although it is possible to insert the data with an invalid
NLS_LANG, you may not be able to select the data through the
Progress Client or via SQLPLUS. Example:
$echo $NLS_LANG
JAPANESE_JAPAN.JA16SJIS
^ ^ ^
| | |
language territory characterset
. Make sure the NLS_LANG also has the correct setting for
the characterset. Again it is possible to insert data,
but in all probability it will not be valid. For double-byte
languages there can be multiple charactersets and having
the just the language and territory match is not enough. The
characterset must match the characterset of the ORACLE database.
The characterset for the ORACLE database is defined when the
database is created and remains the same for the life of the
database. You can have multiple clients have different
charactersets ONLY when the character set is equal to or a
subset of the characterset defined in the database.
To verify this have the customer execute sqldba and check the
value of the NLS_CHARACTERSET parameter from the view
v$nls_parameters. Example:
$sqldba lmode=y system/manager
SQLDBA> connect internal
SQLDBA> select value from v$nls_parameters where parameter =
'NLS_CHARACTERSET';
VALUE
-------------------------------------------------------
JA16SJIS
1 row selected.
03/06/95 dlg
Progress Software Technical Support Note # 15536