gamoes Geschrieben 5. Mai 2006 Geschrieben 5. Mai 2006 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 Zitieren
Amstelchen Geschrieben 5. Mai 2006 Geschrieben 5. Mai 2006 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 Zitieren
1226 Geschrieben 5. Mai 2006 Geschrieben 5. Mai 2006 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. Zitieren
gamoes Geschrieben 8. Mai 2006 Autor Geschrieben 8. Mai 2006 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 Zitieren
gamoes Geschrieben 8. Mai 2006 Autor Geschrieben 8. Mai 2006 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 Zitieren
1226 Geschrieben 9. Mai 2006 Geschrieben 9. Mai 2006 Wenn schon, dann muss es alter system set nls_sort='GERMANY' scope=spfile; heissen, gefolgt von einem Neustart der Datenbank. Zitieren
mme Geschrieben 9. Mai 2006 Geschrieben 9. Mai 2006 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... Zitieren
gamoes Geschrieben 9. Mai 2006 Autor Geschrieben 9. Mai 2006 Wenn ich es mit dem Befehl versuche, erhalte ich ebenfalls die gleiche Fehlermeldung. Das funktioniert auch nicht Gruß Gabi Zitieren
gamoes Geschrieben 9. Mai 2006 Autor Geschrieben 9. Mai 2006 Unter hkey_local\maschine\software\oracle hab ich nachgeschaut, dort ist German angegeben bei nls_lang Gruß Gabi Zitieren
schawenn Geschrieben 19. Mai 2006 Geschrieben 19. Mai 2006 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 Zitieren
gamoes Geschrieben 19. Mai 2006 Autor Geschrieben 19. Mai 2006 Besten Dank, das hat funktioniert. Gruß Gabi Zitieren
schawenn Geschrieben 19. Mai 2006 Geschrieben 19. Mai 2006 nichts zu danken, immer wieder. ;-) mfg schawenn Zitieren
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.