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

Administration Oracle Discussion :

[Oracle 10g] j'arrive pas à changer NLS_LENGTH_SEMANTICS


Sujet :

Administration Oracle

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    155
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 155
    Points : 74
    Points
    74
    Par défaut [Oracle 10g] j'arrive pas à changer NLS_LENGTH_SEMANTICS
    Bonjour à tous,

    En se connectant à oracle par sqlplus en tant que dba, nous avons modifié NLS_LENGTH_SEMANTICS, en faisant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    alter system set NLS_LENGTH_SEMANTICS=CHAR scope=spfile
    shutdown immediate
    startup

    En se connectant avec ce login dba, on retrouve bien NLS_LENGTH_SEMANTICS=CHAR.

    En se connectant avec un autre login, on récupère l'ancienne valeur :
    NLS_LENGTH_SEMANTICS=BYTE

    Nous avons modifié le registry NLS_LANG du client avec différentes valeurs :
    FRENCH_FRANCE.WE8MSWIN1252
    AMERICAN_AMERICA.WE8ISO8859P1

    Ca marche toujours pas.

    Comment faire pour récupérer NLS_LENGTH_SEMANTICS=CHAR avec les autres login Oracle ?

    Merci d'avance.

    Cordialement.

  2. #2
    Expert éminent sénior
    Avatar de orafrance
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    15 967
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 15 967
    Points : 19 073
    Points
    19 073
    Par défaut
    n'y aurait-il pas un trigger ON_LOGGON ?

  3. #3
    Membre expert

    Profil pro
    Inscrit en
    Février 2006
    Messages
    3 437
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 3 437
    Points : 3 597
    Points
    3 597
    Par défaut
    Ou bien le code applicatif execute peut-être sans trigger:
    ALTER SESSION SET NLS_LENGTH_SEMANTICS=BYTE

  4. #4
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    155
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 155
    Points : 74
    Points
    74
    Par défaut
    comment qu'on le voit sous sqlplus ?

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    155
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 155
    Points : 74
    Points
    74
    Par défaut
    Citation Envoyé par pifor
    Ou bien le code applicatif execute peut-être sans trigger:
    ça marche pas avec sql*loader ! (ou alors je ne sais pas faire)

  6. #6
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    155
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 155
    Points : 74
    Points
    74
    Par défaut
    Citation Envoyé par orafrance
    n'y aurait-il pas un trigger ON_LOGGON ?
    comment on le voit sous sqlplus ?

  7. #7
    Membre expert
    Avatar de bouyao
    Inscrit en
    Janvier 2005
    Messages
    1 778
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 1 778
    Points : 3 033
    Points
    3 033
    Par défaut
    Est ce que tu arrête la base après les modifications ?

  8. #8
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    155
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 155
    Points : 74
    Points
    74
    Par défaut
    Citation Envoyé par bouyao
    Est ce que tu arrête la base après les modifications ?
    on fait shutdown immediate puis startup

  9. #9
    Membre expert

    Profil pro
    Inscrit en
    Février 2006
    Messages
    3 437
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 3 437
    Points : 3 597
    Points
    3 597
    Par défaut
    Les triggers ON LOGON sont listés par:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    select owner, trigger_name, triggering_event 
    from dba_triggers
    where triggering_event='LOGON';

  10. #10
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    155
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 155
    Points : 74
    Points
    74
    Par défaut
    Citation Envoyé par pifor
    Les triggers ON LOGON sont listés par:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    select owner, trigger_name, triggering_event 
    from dba_triggers
    where triggering_event='LOGON';
    SELECT owner, trigger_name, triggering_event
    FROM dba_triggers
    WHERE triggering_event='LOGON';

    no rows selected

  11. #11
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    155
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 155
    Points : 74
    Points
    74
    Par défaut
    En fait, en faisant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT owner, trigger_name, triggering_event 
    FROM dba_triggers
    WHERE triggering_event like '%LOGON%';
    Retourne un trigger qui effectivement modifie NLS_LENGTH_SEMANTICS, c'est un progiciel qui fait ça..., et on ne peut donc pas le modifier comme on veut.

    Sinon c'est surtout au chargement de données par sql*loader que ça pose pb. Verriez-vous un moyen de modifier NLS_LENGTH_SEMANTICS pendant sqlloader ? (je n'en ai pas vu...)

  12. #12
    Membre expert

    Profil pro
    Inscrit en
    Février 2006
    Messages
    3 437
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 3 437
    Points : 3 597
    Points
    3 597
    Par défaut
    Je ne comprends pas l'intérêt de changer NLS_LENGTH_SEMANTICS pour une session SQL*Loader: SQL*Loader ne fait que du DML et non du DDL et ce paramètre ne me semble utilisé que par du DDL comme CREATE TABLE et ALTER TABLE et non par du DML comme INSERT ou UPDATE.

  13. #13
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    155
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 155
    Points : 74
    Points
    74
    Par défaut
    Citation Envoyé par pifor
    Je ne comprends pas l'intérêt de changer NLS_LENGTH_SEMANTICS pour une session SQL*Loader: SQL*Loader ne fait que du DML et non du DDL et ce paramètre ne me semble utilisé que par du DDL comme CREATE TABLE et ALTER TABLE et non par du DML comme INSERT ou UPDATE.
    En fait nos pbs actuels viennent du fait que nous migrons notre application vers une bd oracle (même version que la précédente) dont les données textuelles sont à présent codées en utf8 (apparemment sur 16 ou 32 bits).

    Dans le fichier ctl de sql*loader nous avons ce type de commande (pour un champ à charger) :

    champ1 "substr(:champ1, 1, 20)",

    ores ce qui fonctionnait avec la précédente codification, ne fonctionne plus en utf8, le substr ne limite plus à 20 car. les données en entrée (laisse passer 21, 22, 23, ou 24 car. ce qui fait planter sql*loader...) du fait que

    NLS_LENGTH_SEMANTICS=BYTE

    au lieu de

    NLS_LENGTH_SEMANTICS=CHAR


    Voila tout le pb !

    J'espère que j'ai été clair !

    Donc d'autres pistes :
    - comment régler sqlloader pour qu'il ne plante plus dans ce cas ? (tronque de lui même à 20 car. et intègre les données).

    - D'autres idées ?


    Merci de votre aide.

  14. #14
    Membre expert

    Profil pro
    Inscrit en
    Février 2006
    Messages
    3 437
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 3 437
    Points : 3 597
    Points
    3 597
    Par défaut
    Si les données dans le fichier à charger sont encodées en UTF8, il faut utiliser la variable d'environnement NLS_LANG ou le paramètre CHARACTER_SET de SLQ*Loader, sinon si vous n'avez que de l'ASCII à charger il ne faut rien faire côté client et laisser Oracle faire la conversion dans la base.

  15. #15
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    155
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 155
    Points : 74
    Points
    74
    Par défaut
    NLS_LANG
    : on a essayé plusieurs valeurs dans le registry windows (le client oracle est sous windows), ça n'a pas fonctionné (quelle valeur mettre ?)

    le paramètre CHARACTER_SET de SLQ*Loader
    : lequel ? je ne le vois pas dans la liste des para. ...

  16. #16
    Membre expert

    Profil pro
    Inscrit en
    Février 2006
    Messages
    3 437
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 3 437
    Points : 3 597
    Points
    3 597
    Par défaut
    Il faut mettre une des valeurs suivantes qui correspond à l'encodage du fichier.

    Le paramètre pour SQL*Loader est défini ici.

  17. #17
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    155
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 155
    Points : 74
    Points
    74
    Par défaut
    Un grand merci pour la pépite !

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

Discussions similaires

  1. Réponses: 5
    Dernier message: 09/12/2011, 00h05
  2. Oracle 10G n'accede pas home page
    Par chlebta*tsotsi dans le forum Installation
    Réponses: 1
    Dernier message: 08/05/2011, 23h47
  3. j'arrive pas à changer mes CHARACTER_SET
    Par m.ben.hamida dans le forum Requêtes
    Réponses: 1
    Dernier message: 14/03/2008, 16h26
  4. je n'arrive pas à changer la propriété href d'une image lien
    Par Ekimasu dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 27/10/2005, 09h54
  5. je n'arrive pas à changer le groupe de travail
    Par dash dans le forum Windows XP
    Réponses: 1
    Dernier message: 17/10/2005, 12h38

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