Précédent   Forum des professionnels en informatique > Bases de données > Oracle > SQL
SQL Forum d'entraide sur le SQL pour Oracle
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 22/05/2008, 10h27   #1
Invité de passage
 
Inscription : mai 2007
Messages : 16
Détails du profil
Informations forums :
Inscription : mai 2007
Messages : 16
Points : 3
Points : 3
Par défaut Date oracle

Bonjour,
Savez vous comment on peut régler la gestion des dates sous oracle pour que :
quand je fais un insert avec le format JJ/MM/AAAA oracle enregistre dans la base AA/MM/00JJ ou les deux premiers caractères AA sont les deux premiers du format précedent.

En fait le truc c'est que je dois retrouver le format qu'a utilisé le client pour pouvoir reproduire l'erreur.

(Moi j'avais pensé à NLS_FORMAT_DATE mais quand je le modifie il n'insere pas chez moi mais retourne une erreur)

Désolé si c'est un peu tordu comme post.

Merci d'avance
lafouine46 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/05/2008, 10h33   #2
Nouveau Membre du Club
 
Inscription : août 2005
Messages : 61
Détails du profil
Informations forums :
Inscription : août 2005
Messages : 61
Points : 37
Points : 37
Que je sache les dates ne sont pas mémorisées dans un quelconque format alphanumérique mais comme une valeur numérique. C'est lors du select de récupération qu'un formatage a lieu. Donc ce que tu veux, c'est récupérer la date au format AA/MM/00JJ ? Utilises dans ce cas un to_char pour formater.
Korfandar est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/05/2008, 10h33   #3
Membre Expert
 
Avatar de scheu
 
Inscription : juin 2007
Messages : 1 497
Détails du profil
Informations forums :
Inscription : juin 2007
Messages : 1 497
Points : 1 485
Points : 1 485
Les dates sous Oracle sont toujours stockées au même format unique, tu ne peux pas choisir différents formats d'enregistrement selon les dates/lignes que tu veux insérer, c'est juste à la restitution que tu peux changer le format d'affichage

Edit : j'ai été devancé de quelques secondes dans la réponse
__________________
La théorie, c'est quand on sait tout mais que rien ne fonctionne.
La pratique, c'est quand tout fonctionne mais que personne ne sait pourquoi.
Ici, nous avons réuni théorie et pratique : Rien ne fonctionne ... et personne ne sait pourquoi !

Réplication de base avec Postgresql : http://scheu.developpez.com/tutoriel.../log-shipping/
scheu est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/05/2008, 10h45   #4
Invité de passage
 
Inscription : mai 2007
Messages : 16
Détails du profil
Informations forums :
Inscription : mai 2007
Messages : 16
Points : 3
Points : 3
Par défaut Et NLS_FORMAT_DATE

Merci de vos réponses.

Je crois que le paramètre NLS_FORMAT_DATE permet de spécifier le format d'enregistrement des dates . Qu'est ce que vous en pensez ?
lafouine46 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/05/2008, 10h48   #5
Membre éclairé
 
Inscription : août 2005
Messages : 316
Détails du profil
Informations personnelles :
Âge : 41

Informations forums :
Inscription : août 2005
Messages : 316
Points : 342
Points : 342
non comme dit precedemment tu ne peut pas influer sur le format
de stockage de la date
le nls te permet de donner le format d'affichage ou de conversion par defaut de la date
c.langlet est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/05/2008, 11h02   #6
Invité de passage
 
Inscription : mai 2007
Messages : 16
Détails du profil
Informations forums :
Inscription : mai 2007
Messages : 16
Points : 3
Points : 3
Par défaut un petit exemple

Et est ce que vous avez une idée sur ce qui cloche alors ?

Pour exemple :
si dans l'application je veux insérer une date 01/09/2010, chez nous il l'insere en 01/09/2010 et chez le client
en 20/09/0001.

Nous avons un oracle 9i sous linux avec nos variables "locale" en francais et le client en american

Merci encore
lafouine46 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/05/2008, 11h13   #7
Nouveau Membre du Club
 
Inscription : août 2005
Messages : 61
Détails du profil
Informations forums :
Inscription : août 2005
Messages : 61
Points : 37
Points : 37
Je suppose que la saisie est alphanumérique, comment ton application convertit-elle cela en date ? Faites vous un to_date en précisant un format ou utilisez-vous une conversion implicite et dans ce cas sensible au paramétrage local par défaut des dates ?
Korfandar est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/05/2008, 11h23   #8
Membre éclairé
 
Inscription : août 2005
Messages : 316
Détails du profil
Informations personnelles :
Âge : 41

Informations forums :
Inscription : août 2005
Messages : 316
Points : 342
Points : 342
est-ce que la colonne date de ta table est alimenté a partir d'une variable chaine par un to_date
par-ce que si dans le to_date le format de la date en entrée n'est pas renseigné c'est celui du nls qui est pris a savoir JJ/MM/YYYY en francais
et en americain MM/JJ/YYYY
Sinon comment affiche tu les dates pour les comparer , précise tu le format d'affichage dans le select pour être sur de l'affichage (select to_char(i_date,'DD/MM/YYYY') ) ?

edit:
Zut j'ai mis trop de temps a repondre
c.langlet est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/05/2008, 12h18   #9
Invité de passage
 
Inscription : mai 2007
Messages : 16
Détails du profil
Informations forums :
Inscription : mai 2007
Messages : 16
Points : 3
Points : 3
Par défaut it's working !!!

Je ne sais pas exactement pourquoi javais ce comportement mais avec la
fonction to_date ca marche parfaitement.
Merci beaucoup

Vive l'open source du ciboulot !!
lafouine46 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/05/2008, 12h20   #10
Membre confirmé
 
Avatar de JerryMouse
 
Homme N'Guessan KOUAME
Inscription : avril 2002
Messages : 210
Détails du profil
Informations personnelles :
Nom : Homme N'Guessan KOUAME
Localisation : Côte d'Ivoire

Informations professionnelles :
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : avril 2002
Messages : 210
Points : 270
Points : 270
Envoyer un message via MSN à JerryMouse Envoyer un message via Yahoo à JerryMouse
NLS_FORMAT_DATE permet de définir un format de gestion des date par défaut. mais, quelque soit le format défini, Oracle stock toujours la date dans un format qui lui est propre. c'est à la restitution qu'on précise sous quelle forme on veut la voir ou sous quelle forme on la fournit à Oracle.
__________________
Très souvent, le plus difficile est de savoir ce que l'on veut.
JerryMouse est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/05/2008, 14h29   #11
Membre éclairé
 
Inscription : août 2005
Messages : 316
Détails du profil
Informations personnelles :
Âge : 41

Informations forums :
Inscription : août 2005
Messages : 316
Points : 342
Points : 342
il vaudrait mieu quand même que tu cherche a comprendre le pourquoi
Car le même genre de probleme ce reproduira si tu ne comprend la gestion
des dates et des formats de dates dans oracle (je te rassure c'est tout bête)
c.langlet est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 17h16.


 
 
 
 
Partenaires

Hébergement Web