5. Mai 200619 j Wie kann ich Oracle 9i dazu bewegen, dass bei der Eingabe: select * from tabelle order bei spalte1 so sortiert wird, dass zuerst Sonderzeichen, dann Zahlen und danach buchstaben alphabetisch sortiert werden. Wenn ich angebe: alter session set nls_sort='BINARY' klappt diese Sortierung, wenn ich aber die Datenbank hochfahre mit einem pfile, der den parameter nls_sort='BINARY' enthält, dann funktioniert die Sortierung überhaupt nicht. Gruß Gabi
5. Mai 200619 j wenns in der init.ora drinsteht, müsste die sortierung auch funktionieren. was steht nach einem startup der database jeweils im parameter NLS_SORT von NLS_SESSION_PARAMETERS, NLS_INSTANCE_PARAMETERS sowie NLS_DATABASE_PARAMETERS? s'Amstel
5. Mai 200619 j Das es hier auf den Sessionparameter ankommt, hilft es mMn nichts, der Bank als solcher einen anderen Parameter zu verpassen. Angepasst müssen hier die Clienteinstellungen. Unter UNIX z.B. mit export NLS_SORT=BINARY. Wird dann SQL*Plus aufgerufen, ist auch NLS_SORT in der Session entsprechend gesetzt.
8. Mai 200619 j Wo find ich die Parameter nls_instance_parameter, nls_database_parameters? Momentan teste ich die Sortierung auf dem Server. Da muss ich doch die Spacheinstellung des Servers beachten oder? Gruß Gabi
8. Mai 200619 j Windows 2003 habe inzwischen über: select * from nls_database_parameters; herausgefunden dass die parameter noch auf american und nls_sort auf binary steht. Wie kann ich das ändern. Hab es schon mal versucht mit: alter database set nls_sort='German' bekomme aber nur die Fehlermeldung: Option für ALTER DATABASE fehlt oder ungültig Gruß Gabi
9. Mai 200619 j Wenn schon, dann muss es alter system set nls_sort='GERMANY' scope=spfile; heissen, gefolgt von einem Neustart der Datenbank.
9. Mai 200619 j Die einstellung der Datenbank müsste hier doch unerhelblich sein. Entscheident ist was der Client hat. In deinem Fall testest du direkt auf dem DB-Server. Nichtsdestotrotz hast du dann einen OracleClient da mit drauf, der sich die nls Parameter aus der regestry zieht. hkey_local\maschine\software\oracle und alles darunter liegende mal unter die Lupe nehmen...
9. Mai 200619 j Wenn ich es mit dem Befehl versuche, erhalte ich ebenfalls die gleiche Fehlermeldung. Das funktioniert auch nicht Gruß Gabi
9. Mai 200619 j Unter hkey_local\maschine\software\oracle hab ich nachgeschaut, dort ist German angegeben bei nls_lang Gruß Gabi
19. Mai 200619 j Versuche es mal mit folgendem Statement: SELECT spalte1 FROM tabelle ORDER BY lpad(substr(DUMP(spalte1, 1),14,length(DUMP(spalte1, 1))-13),3,'0') ASC Und wenn du anstatt DUMP(spalte1,1) -> DUMP(spalte1,16) angibst, wird hexadezimal sortiert. Brauchst auch den Session-Parameter nicht zu ändern. mfg schawenn
Archiv
Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.