web-dev-qa-db-fra.com

Comment changer NLS_Language dans NLS_Instance_Parameterers

Base de données Oracle 12C (12.1.0.2.0)

Problème: Je voulais changer NLS_LANGUAGE et NLS_TERRITORY dans NLS_INSTANCE_PARAMETERS. Je sais comment changer pour la session, mais je voulais le changer pour l'instance. La raison en est que des scripts de procédure stockés ne fonctionnaient pas correctement en raison de l'horodatage. J'avais cette erreur:

start_date=>TO_TIMESTAMP_TZ('12-MAY-2015 02.00.00.000000000 AM +05:30','DD-MON-RRRR HH.MI.SSXFF AM TZR','NLS_DATE_LANGUAGE=english'), repeat_interval=>
ORA-01855: E necessario AM/A.M. ou PM/P.M. 

Reamensant: le NLS_DATE_FORMAT et le NLS_TIMESTAMP_FORMAT étaient les mêmes. J'ai même essayé unset LANG et unset NLS_LANG. Malgré tout de cela, j'avais toujours des erreurs de conversion de la date, j'ai donc décidé de mettre à jour tous les paramètres liés à la NLS aux mêmes valeurs sur toutes les vues. Ma base de données (NLS_DATABASE_PARAMETERS) et la session (NLS_SESSION_PARAMETERS) affichaient la même NLS_Langage, mais mon instance (NLS_Instance_Parameters) n'était pas.

Solution: Pour résoudre ce problème, je devais mettre à jour le init<db>.ora et le spfiles<db>.ora Je n'ai pas vraiment vu cela explicitement spécifié n'importe où sauf pour peut-être sur Burleson Consulting - Site Web , j'ai donc décidé de mettre mes conclusions ici pour aider les autres avec le même problème.

J'ai mis à jour NLS_LANGUAGE et NLS_TERRITORY dans NLS_INSTANCE_PARAMETERS, redémarré la base de données et elle a corrigé mon problème.

Je devais forcer le redémarrage parce que pour une raison quelconque, je ne pouvais pas redémarrer normalement.

1
user1747935

Exemple ci-dessous sur la façon de mettre à jour ceci:

[Oracle@mydbserver dbs]$ unset LANG
[Oracle@mydbserver dbs]$ sqlplus "/ as sysdba"

SQL*Plus: Release 12.1.0.2.0 Production on Fri Jan 27 13:18:26 2017
Copyright (c) 1982, 2014, Oracle.  All rights reserved.
Connected to:
Oracle Database 12c Enterprise Edition Release 12.1.0.2.0 - 64bit Production
With the Partitioning, OLAP, Advanced Analytics and Real Application Testing options

SQL> SELECT sys_context('userenv','language') from dual;

SYS_CONTEXT('USERENV','LANGUAGE')
--------------------------------------------------------------------------------
BRAZILIAN PORTUGUESE_BRAZIL.AL32UTF8

SQL> quit
Disconnected from Oracle Database 12c Enterprise Edition Release 12.1.0.2.0 - 64bit Production
With the Partitioning, OLAP, Advanced Analytics and Real Application Testing options

[Oracle@mydbserver dbs]$ unset NLS_LANG
[Oracle@mydbserver dbs]$ sqlplus "/ as sysdba"

SQL*Plus: Release 12.1.0.2.0 Production on Fri Jan 27 13:18:51 2017

Copyright (c) 1982, 2014, Oracle.  All rights reserved.


Connected to:
Oracle Database 12c Enterprise Edition Release 12.1.0.2.0 - 64bit Production
With the Partitioning, OLAP, Advanced Analytics and Real Application Testing options

SQL> SELECT sys_context('userenv','language') from dual;

SYS_CONTEXT('USERENV','LANGUAGE')
--------------------------------------------------------------------------------
BRAZILIAN PORTUGUESE_BRAZIL.AL32UTF8

SQL> quit
Disconnected from Oracle Database 12c Enterprise Edition Release 12.1.0.2.0 - 64bit Production
With the Partitioning, OLAP, Advanced Analytics and Real Application Testing options

C'est là que j'ai édité l'init et SPFILE - vous voudrez peut-être prendre une sauvegarde !!

[Oracle@mydbserver dbs]$ ls
hc_scpp.dat  init.ora  initscpp.ora  lkSCPP  orapwmydb  spfilemydb.ora  teste.ora

edit initscpp.ora et spfilemydb.ora avec les valeurs que vous souhaitez pour les paramètres NLS puis j'ai procédé à redémarrer

[Oracle@mydbserver dbs]$ sqlplus "/ as sysdba"
SQL*Plus: Release 12.1.0.2.0 Production on Fri Jan 27 13:25:30 2017
Copyright (c) 1982, 2014, Oracle.  All rights reserved.
Connected to:
Oracle Database 12c Enterprise Edition Release 12.1.0.2.0 - 64bit Production
With the Partitioning, OLAP, Advanced Analytics and Real Application Testing options

SQL> shutdown
^CORA-01013: o usuario solicitou o cancelamento da operac?o atual

l'arrêt était lent alors je [ctrl+c] et essayé de forcer le redémarrage puis redémarrer normalement !!

SQL> startup force
Oracle instance started.

Total System Global Area 2,0724E+10 bytes
Fixed Size                  3158000 bytes
Variable Size            3070230544 bytes
Database Buffers         1,7645E+10 bytes
Redo Buffers                5230592 bytes
Database mounted.
Database opened.
SQL> shutdown
Database closed.
Database dismounted.
Oracle instance shut down.
SQL> startup
Oracle instance started.

Total System Global Area 2.0724E+10 bytes
Fixed Size                  3158000 bytes
Variable Size            3070230544 bytes
Database Buffers         1.7645E+10 bytes
Redo Buffers                5230592 bytes
Database mounted.
Database opened.
SQL> quit
Disconnected from Oracle Database 12c Enterprise Edition Release 12.1.0.2.0 - 64bit Production
With the Partitioning, OLAP, Advanced Analytics and Real Application Testing options
[Oracle@mydbserver dbs]$ sqlplus "/ as sysdba"

SQL*Plus: Release 12.1.0.2.0 Production on Fri Jan 27 13:31:17 2017

Copyright (c) 1982, 2014, Oracle.  All rights reserved.


Connected to:
Oracle Database 12c Enterprise Edition Release 12.1.0.2.0 - 64bit Production
With the Partitioning, OLAP, Advanced Analytics and Real Application Testing options

SQL>  SELECT sys_context('userenv','language') from dual;

SYS_CONTEXT('USERENV','LANGUAGE')
--------------------------------------------------------------------------------
AMERICAN_AMERICA.AL32UTF8

SQL> quit
Disconnected from Oracle Database 12c Enterprise Edition Release 12.1.0.2.0 - 64bit Production
0
user1747935