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 :

[9i, débutant] NLS_SORT=FRENCH_M


Sujet :

Administration Oracle

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    71
    Détails du profil
    Informations personnelles :
    Localisation : France, Marne (Champagne Ardenne)

    Informations forums :
    Inscription : Octobre 2005
    Messages : 71
    Par défaut [9i, débutant] NLS_SORT=FRENCH_M
    Bonjour,

    J'ai fait quelques recherches, lus quelques documentations et autres FAQ, mais je n'arrive pas à résoudre mon problème :

    J'accède à une base ORACLE via ADO (OraOLEDB) depuis mon application Windows.

    Quand je liste (SELECT NOM FROM TEST) le contenu d'une table de test nouvellement créée j'ai un classement de ce style :
    Je ne comprends pas trop pourquoi les chiffres se mettent après les caractères.

    Avec un SELECT * from NLS_DATABASE_PARAMETERS je vois que l'ordre de tri du serveur est BINARY.
    Depuis un SQL Scratchpad, un SELECT * FROM NLS_SESSION_PARAMETERS me donne FRENCH pour ordre de tri de la session.

    Après quelques recherches je crois que FRENCH_M est le tri dont j'ai besoin.
    Toujours dans mon SQL Scratchpad, je fais un ALTER SESSION SET NLS_SORT=FRENCH_M puis ma requête initiale (SELECT NOM FROM TEST) et j'obtiens bien le tri escompté (les chiffres avant les caractères).

    Toutefois quand j'essaye d'appliquer cet ALTER SESSION à une de mes anciennes tables déjà existante, j'ai un message d'erreur
    ORA-03113: fin de fichier sur canal de communication
    puis je perds la connexion à ORACLE

    Je ne comprends pas pourquoi. Quelqu'un peut m'aiguiller ?

    Dans l'idéal je voudrais remplacer cet ALTER SESSION SET NLS_SORT=FRENCH_M en le spécifiant dans ma connectionstring. Est-ce possible ?

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    71
    Détails du profil
    Informations personnelles :
    Localisation : France, Marne (Champagne Ardenne)

    Informations forums :
    Inscription : Octobre 2005
    Messages : 71
    Par défaut
    Hum

    Si je fais
    SELECT NOM FROM TEST ORDER BY NLSSORT(NOM, 'NLS_SORT=FRENCH_M')
    ça marche

    par contre si je fais la même requête sur une de mes anciennes tables :
    SELECT NOM FROM CONTACT ORDER BY NLSSORT(NOM, 'NLS_SORT=FRENCH_M')
    ça me déconnecte

    Personne pour me dire si je fais fausse route ?

  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
    Par défaut
    Dans l'idéal je voudrais remplacer cet ALTER SESSION SET NLS_SORT=FRENCH_M en le spécifiant dans ma connectionstring. Est-ce possible ?
    Non. Mais vous pouvez éventuellement mettre cette instruction dans un TRIGGER ON LOGON avec EXECUTE IMMEDIATE.

    ORA-03113: fin de fichier sur canal de communication
    puis je perds la connexion à ORACLE

    Je ne comprends pas pourquoi. Quelqu'un peut m'aiguiller ?
    C'est probablement un bug Oracle. Vérifiez le fichier alert.log de votre base pour vérifier si Oracle n'a pas créé un fichier trace avec une erreur interne au moment de la déconnexion brutale.

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    71
    Détails du profil
    Informations personnelles :
    Localisation : France, Marne (Champagne Ardenne)

    Informations forums :
    Inscription : Octobre 2005
    Messages : 71
    Par défaut
    Citation Envoyé par pifor
    Non. Mais vous pouvez éventuellement mettre cette instruction dans un TRIGGER ON LOGON avec EXECUTE IMMEDIATE.
    Merci de cette idée. Je l'ai mise en oeuvre (avec un tri BINARY ou FRENCH) et ça marche correctement

    Citation Envoyé par pifor
    C'est probablement un bug Oracle. Vérifiez le fichier alert.log de votre base pour vérifier si Oracle n'a pas créé un fichier trace avec une erreur interne au moment de la déconnexion brutale.
    Un bug Oracle ? Fichtre !
    Quoi qu'il en soit je n'ai rien de significatif dans ce fichier log. Quelle autre piste pourrais-je explorer ?

    Je ne rencontre ce problème que quand j'utilise FRENCH_M comme tri. peut-être faudrait-il que je m'oriente vers une autre solution ou un autre tri similaire ?

  5. #5
    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
    Par défaut
    C'est peut-être un problème de communication dans les couches réseau. Mais si le problème peut être systématiquement reproduit avec 1 requête spécifique, il s'agit probablement d'un bug Oracle:

    ORA-03113 end-of-file on communication channel

    Cause: An unexpected end-of-file was processed on the communication channel. The problem could not be handled by the Net8 two-task software. This message could occur if the shadow two-task process associated with a Net8 connect has terminated abnormally, or if there is a physical failure of the interprocess communication vehicle, that is, the network or server machine went down.

    In addition, this message could occur when any of the following statements/commands have been issued:

    ALTER SYSTEM KILL SESSION ... IMMEDIATE
    ALTER SYSTEM DISCONNECT SESSION ... IMMEDIATE
    SHUTDOWN ABORT/IMMEDIATE/TRANSACTIONAL
    Action: If this message occurs during a connection attempt, check the setup files for the appropriate Net8 driver and confirm Net8 software is correctly installed on the server. If the message occurs after a connection is well established, and the error is not due to a physical failure, check if a trace file was generated on the server at failure time. Existence of a trace file may suggest an Oracle internal error that requires the assistance of Oracle Support Services.

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    71
    Détails du profil
    Informations personnelles :
    Localisation : France, Marne (Champagne Ardenne)

    Informations forums :
    Inscription : Octobre 2005
    Messages : 71
    Par défaut
    je n'ai pas de compétences Admin pour Oracle, je fais juste la partie développement et je n'ai pas un accès direct au disque du serveur, donc ça limite un peu mes recherches.

    Toujours est-il qu'une seule requête me génère cette erreur :
    SELECT NOM FROM CONTACT ORDER BY NLSSORT(NOM, 'NLS_SORT=FRENCH_M')

    Bizarrement je n'ai aucun souci quand je demande un autre classement.

    N'y a t-il pas une autre solution que de spécifier ce classement FRENCH_M pour avoir les chiffres avant les caractères ? Et bien sûr en gardant le tri FRENCH où les caractères accentués sont correctement classés.

  7. #7
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    71
    Détails du profil
    Informations personnelles :
    Localisation : France, Marne (Champagne Ardenne)

    Informations forums :
    Inscription : Octobre 2005
    Messages : 71
    Par défaut
    Pas très rapide, mais j'ai résolu mon problème.

    En fait je ne fais rien de plus, ce classement est le classement normal avec le jeu de caractère que j'utilise et le tri FRENCH.

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

Discussions similaires

  1. Débutant XML
    Par viny dans le forum XML/XSL et SOAP
    Réponses: 8
    Dernier message: 25/07/2002, 12h07
  2. [Kylix] Re Re: débutant sur Kylix et Linux.....
    Par Eclypse dans le forum EDI
    Réponses: 2
    Dernier message: 08/06/2002, 22h53
  3. [Kylix] Le débutant en Kylix et Linux....
    Par Eclypse dans le forum EDI
    Réponses: 2
    Dernier message: 08/05/2002, 10h37
  4. Réponses: 3
    Dernier message: 07/05/2002, 16h06
  5. [HyperFile] 2 questions de débutant
    Par khan dans le forum HyperFileSQL
    Réponses: 2
    Dernier message: 29/04/2002, 23h18

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