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.
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