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 ?