|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Invité de passage
![]() Inscription : novembre 2012 Messages : 4 ![]() |
Bonjour,
Je souhaite récupérer la valeur du jour au format abrégé Oracle mais j'obtiens des valeurs différentes en fonction de la base sur laquelle je travaille. J'utilise la fonction suivante : Code :
SELECT to_char(sysdate,'DY','NLS_DATE_LANGUAGE=''FRENCH''') INTO myday FROM dual; Je ne comprends pas d'où peut provenir cette différence de résultat. Lorsque j'utilise un autre langage que le français, je n'ai aucune différence de résultat entre les deux versions. Avez-vous une piste, une idée ? Merci |
|
|
00
|
|
|
#2 |
|
Membre habitué
![]() Inscription : septembre 2010 Messages : 74 ![]() |
Salut brlagl,
Je n'ai pas d'Oracle 9i pour tester ta requête. Mais, si tu as effectivement la même requête renvoyant deux résultat différents sous deux versions différentes alors je te conseillerai d'appeler le support Oracle. Quoiqu'il en soit, je vois que tu retourne ce jour dans une variable. Personnellement, je pense que tu devrais utiliser le numéro du jour. Ainsi, tu restes indépendant de la langue. Quelque chose comme: Code :
SELECT 1 + FLOOR (SYSDATE - TRUNC (SYSDATE, 'IW')) FROM dual; Te renverra toujours 1 si le jour est lundi et 7 si c'est dimanche. Peu importe les paramètres de la session ou de la base de données. Mieux vaut toujours préférer une solution indépendante de tout paramètres NLS_. Tu peux jamais être certain que ceux-ci ne changeront pas au niveau des sessions ou de ta base. A+ |
|
|
00
|
|
|
#3 | |
![]() ![]() Inscription : décembre 2002 Messages : 2 651 ![]() |
Citation:
Donc il faut adopter les nouveaux formats.
__________________
Consultant / formateur Oracle indépendant Certifié OCP 10g et 11g, sécurité 11g |
|
|
|
20
|
|
|
#4 | |
![]() ![]() Inscription : décembre 2002 Messages : 2 651 ![]() |
Citation:
__________________
Consultant / formateur Oracle indépendant Certifié OCP 10g et 11g, sécurité 11g |
|
|
|
00
|
|
|
#5 | |||
|
Membre habitué
![]() Inscription : septembre 2010 Messages : 74 ![]() |
Citation:
Alors si je peux me permettre... Une année ISO commence toujours un lundi et termine toujours un dimanche. Peu importe le pays, la langue ou la configuration de l'utilisateur. Est-ce que vous avez un exemple qui en jouant sur les paramètres NLS (comme dans votre exemple listé) me reverrait un chiffre différent de 1 à 7 (1=lundi et 7=Dimanche) pour la requête suivante?? Code :
|
|||
|
|
10
|
|
|
#6 |
|
Invité de passage
![]() Inscription : novembre 2012 Messages : 4 ![]() |
Merci pour vos réponses, je vois que je n'ai apparemment pas d'autre choix que de m'adapter à ce nouveau format de date abrégé...
|
|
|
00
|
|
|
#7 | |||
![]() ![]() Inscription : décembre 2002 Messages : 2 651 ![]() |
Citation:
Et effectivement, je n'ai pas d'exemple à vous proposer qui la prenne en défaut ! Mes excuses donc, et coup de chapeau pour cette formule indépendante du paramétrage NLS.
__________________
Consultant / formateur Oracle indépendant Certifié OCP 10g et 11g, sécurité 11g |
|||
|
|
00
|
|
|
#8 | |
|
Invité de passage
![]() Inscription : novembre 2012 Messages : 4 ![]() |
Citation:
|
|
|
|
00
|
|
|
#9 |
|
Expert Confirmé Sénior
![]() Marius NituIngénieur développement logiciels Inscription : octobre 2007 Messages : 4 104 ![]() |
|
|
|
10
|
|
|
#10 |
|
Invité de passage
![]() Inscription : novembre 2012 Messages : 4 ![]() |
Merci à vous pour ces informations.
Je vais donc changer le code de l'application. |
|
|
00
|
|
|
#11 |
![]() ![]() Inscription : décembre 2002 Messages : 2 651 ![]() |
Pour ceux qui voudraient creuser le sujet, il y a une note Metalink dédiée aux changements NLS intervenus en 10g : 292942.1.
On y apprend par exemple que la liste des modifications figure dans ORACLE_HOME/nls/data/old/data_changes.htm
__________________
Consultant / formateur Oracle indépendant Certifié OCP 10g et 11g, sécurité 11g |
|
|
10
|
Copyright © 2000-2013 - www.developpez.com