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

Oracle Discussion :

UTF-8 problème de semantic


Sujet :

Oracle

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre émérite
    Avatar de yolepro
    Profil pro
    Architecte de système d'information
    Inscrit en
    Mai 2002
    Messages
    918
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France

    Informations professionnelles :
    Activité : Architecte de système d'information

    Informations forums :
    Inscription : Mai 2002
    Messages : 918
    Par défaut UTF-8 problème de semantic
    Bonjour,

    Comme demandé ici http://www.developpez.net/forums/showthread.php?t=77831

    J'ouvre une nouvelle discussion pour peut etre développer un peu plus la problématique UTF-8.

    Mon problème. J'ai une base en ISO-8859-1 (correspondance Oracle WE8ISO8859P15). Nous utilisons des VARCHAR2 partout et de temps en temps des VARCHAR2(4000) sans jamais spécifier le type semantic (CHAR ou BYTE).

    Nous devons migrer cette base en UTF-8 (ou peut etre AL32UTF8 je ne vois pas trop la différence), mais je ne sais pas trop comment s'y prendre ni quels sont les impacts (ce n'est pas moi qui fait la migration mais un DBA).

    Nous arrivont a changer les parametres dans le fichier d'init pour que la base passe en NLS_LENGTH_SEMANTICS = CHAR

    Mais malgrés cela le schema de ma base (quand PL/SQL je vais dans Reports / DBA / NLS Database parameter) NLS_LENGTH_SEMANTICS reste à BYTE.

    Est ce normal?

    Dans tous les cas, comment faire pour pouvoir faire passer 4000 caractères dans un VARCHAR2 en UFT-8.

    Dois-je redéfinir le champs en CLOB?
    Cela est il problématique pour mes autres champs (ex VARCHAR2(10) )?

    Merci d'avance pour vos réponses.

  2. #2
    Expert confirmé
    Avatar de SheikYerbouti
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    6 760
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2003
    Messages : 6 760
    Par défaut
    Pourquoi pas simplement :

  3. #3
    Membre émérite
    Avatar de yolepro
    Profil pro
    Architecte de système d'information
    Inscrit en
    Mai 2002
    Messages
    918
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France

    Informations professionnelles :
    Activité : Architecte de système d'information

    Informations forums :
    Inscription : Mai 2002
    Messages : 918
    Par défaut
    Effectivement (j'ai testé) si je créé une autre table en forceant tous les champs a CHAR ex VARCHAR2(10 CHAR). Il n'y a plus de problème.

    Mais je suis donc obligé de changer tout mon script de création de base (et c'est pas vraiment ce que je veux faire).

  4. #4
    Expert confirmé
    Avatar de SheikYerbouti
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    6 760
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2003
    Messages : 6 760
    Par défaut
    Il existe des procédure de migration strictes et détailées. Vous (ou votre DBA) devez vous les procurer sur Metalink, Notament.

  5. #5
    Membre Expert
    Avatar de LeoAnderson
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    2 938
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 2 938
    Par défaut
    Non, vous n'avez pas le choix : vous devez modifier une à une toutes les tables pour lesquelles vous souhaitez passer de BYTES à CHAR.

    Le NLS_LENGHTH_SEMANTICS ne sert que pour les tables qui sont créés sans spécifier (et les procédures d'import spécifient); cela n'impacte pas les tables déjà créées.

    Mais si vous faites une modification de NLS_LENGTH_SEMANTICS dans le init.ora, vous êtes obligé de redémarrer la base... ;-)

  6. #6
    Membre émérite
    Avatar de yolepro
    Profil pro
    Architecte de système d'information
    Inscrit en
    Mai 2002
    Messages
    918
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France

    Informations professionnelles :
    Activité : Architecte de système d'information

    Informations forums :
    Inscription : Mai 2002
    Messages : 918
    Par défaut
    Bonjour,

    Je réponds tard mais je suis toujours bloqué avec ce problème.

    J'ai fait un autre test depuis la dernière fois.

    En créant une table basique sans forcer les champs VARCHAR2:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    -- Create table
    create table T_TESTCHAR
    (
    CODE_TEST INTEGER not null,
    LBL_TEST VARCHAR2(10) not null,
    LBL_TEST_EN VARCHAR2(10)
    )
    tablespace DATA_M_ARP
    pctfree 10
    initrans 1
    maxtrans 255
    storage
    (
    initial 64K
    minextents 1
    maxextents unlimited
    );
     
    
    Et la, je peux effectivement insérer 10 caractère UTF-8.

    Donc je me demande pourquoi il n'est pas possible de faire un export de la structure de l'ancienne base (la base sans les données) comme ca j'ai mes tables non typées. Ensuite faire une autre instance de base vide avec les paramètre SEMANTICS à CHAR et lancer le script de creation de base.

    Enfin migrer les données de l'ancienne base sur la nouvelle.

    Cas vous choque ?

Discussions similaires

  1. UTF-8 : problème d'affichage (Eclipse/Java)
    Par number6six dans le forum Eclipse Java
    Réponses: 8
    Dernier message: 26/06/2009, 18h01
  2. [UTF 8] problème d'encoding
    Par nannous dans le forum Jasper
    Réponses: 6
    Dernier message: 17/02/2009, 17h10
  3. [Joomla!] TCPDF et utf-8 : problème de font
    Par ghosty177 dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 1
    Dernier message: 11/12/2008, 17h12
  4. Bonjour, JSP avec Charset UTF-8 Problème
    Par chakcc dans le forum Langage
    Réponses: 1
    Dernier message: 03/01/2007, 11h45
  5. [utf-8] problème d'accents avec gtk+
    Par over_score dans le forum Général Python
    Réponses: 3
    Dernier message: 14/12/2005, 01h43

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