IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

SQL Oracle Discussion :

Migration 9i/10g fonctionnement différent de to_date


Sujet :

SQL Oracle

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé Avatar de gaboo_bl
    Profil pro
    Inscrit en
    Août 2006
    Messages
    67
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Août 2006
    Messages : 67
    Par défaut Migration 9i/10g fonctionnement différent de to_date
    Bonjour,

    lors de mes tests pour migrer une base Oracle de 9i vers 10g, je bute sur un problème : il semble que le comportement des masques de conversion ait changé. Un exemple simple:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    select to_date('JAN','MON','NLS_DATE_LANGUAGE=FRENCH') from dual;
    sous oracle 9, il me renvoie 01/01/2009, par contre sous oracle 10 j'ai une erreur ora-01843: not a valid month. J'ai la même erreur avec les autres mois

    C'est étonnant car la doc 10g indique bien que MON correspond au mois abrégé. Une fonctionnalité non documentée peut être ?

    En tout cas si quelqu'un a une idée je suis preneur.

  2. #2
    Expert confirmé
    Avatar de laurentschneider
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Décembre 2005
    Messages
    2 944
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Finance

    Informations forums :
    Inscription : Décembre 2005
    Messages : 2 944
    Par défaut
    hé oui, c'est la vie...

    en français, les abbréviations ont passé de JAN à JANV. en 10g



    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    select to_char(date '2000-01-01','mon','nls_date_language=french'), version 
    from v$instance;
    TO_CH VERSION          
    ----- -----------------
    janv. 10.2.0.4.0
    select to_char(date '2000-01-01','mon','nls_date_language=french'), version 
    from v$instance;
    TO_ VERSION          
    --- -----------------
    jan 9.2.0.8.0
    Ils sont fous ces gaulois

  3. #3
    Membre confirmé Avatar de gaboo_bl
    Profil pro
    Inscrit en
    Août 2006
    Messages
    67
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Août 2006
    Messages : 67
    Par défaut
    Argl.

    Et c'est là que le génial concepteur original du schéma de la base de données susmentionnée a bien de la chance de n'être plus là pour subir toute l'étendue de mon courroux soudain et inopiné.

    Nan parce que bien évidemment des tables avec du mois stocké en varchar, j'en ai par paquet de douze. Après tout quelle drôle d'idée d'utiliser un type date pour une date, franchement.

    Bon question subsidiaire, y a pas un p'tit workaround des fois? parce que sinon çà sent la plâtrée de verrues, vue que le schéma est difficilement changeable...

    Edit : j'avais pas vu ta réponse PlaineR, j'ai demandé à mon DBA de me sortir la note metalink car je n'y ai pas accés.

  4. #4
    Membre chevronné Avatar de NGasparotto
    Inscrit en
    Janvier 2007
    Messages
    421
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 421
    Par défaut
    La note metalink metionnee par plaineR explique un workaround. Je dois bien admettre que c'est plutot... hummm...

    Nicolas.

  5. #5
    Expert confirmé
    Avatar de laurentschneider
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Décembre 2005
    Messages
    2 944
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Finance

    Informations forums :
    Inscription : Décembre 2005
    Messages : 2 944
    Par défaut
    un petit replace ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    replace(replace(... varchar,'JAN','Janv.'),'FEV','Févr.'),...

  6. #6
    Membre confirmé Avatar de gaboo_bl
    Profil pro
    Inscrit en
    Août 2006
    Messages
    67
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Août 2006
    Messages : 67
    Par défaut
    oui un replace ou un decode, le problème c'est que çà serait pas un petit replace, mais plutôt tout un tas de petits replace partout dans l'appli, d'où ma recherche d'autre solution.

  7. #7
    Membre Expert

    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Janvier 2004
    Messages
    2 862
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Chef de projet en SSII
    Secteur : Conseil

    Informations forums :
    Inscription : Janvier 2004
    Messages : 2 862
    Par défaut
    Oui en 10g, les abréviations ont changé (cf.note metalink 292942.1):
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    SQL> select to_date('JAN','MON','NLS_DATE_LANGUAGE=FRENCH') FROM dual;
    select to_date('JAN','MON','NLS_DATE_LANGUAGE=FRENCH') FROM dual
                   *
    ERREUR à la ligne 1 :
    ORA-01843: ce n'est pas un mois valide
     
     
    SQL> select to_date('janv.','MON','NLS_DATE_LANGUAGE=FRENCH') FROM dual;
     
    TO_DATE(
    --------
    01/01/09
    Dans cette note, il est expliqué comment utiliser les abréviations de la 9i.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Forms 10g][combo] : soucis suite migration 9i -> 10g
    Par Emmanuel Lecoester dans le forum Outils
    Réponses: 1
    Dernier message: 24/10/2007, 16h54
  2. Réponses: 0
    Dernier message: 24/10/2007, 12h13
  3. Migration 9i/10g et HP-UX/Linux
    Par Daily dans le forum Administration
    Réponses: 4
    Dernier message: 25/09/2007, 18h32
  4. Fonctionnement différent sous debugger
    Par bozo dans le forum Eclipse Java
    Réponses: 3
    Dernier message: 19/09/2007, 15h50
  5. Migration 8i -> 10g
    Par billout9 dans le forum Oracle
    Réponses: 2
    Dernier message: 13/03/2007, 14h27

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo