Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Oracle Datenbank

Empfohlene Antworten

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

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

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.

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

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

Wenn schon, dann muss es alter system set nls_sort='GERMANY' scope=spfile; heissen, gefolgt von einem Neustart der Datenbank.

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...

Wenn ich es mit dem Befehl versuche, erhalte ich ebenfalls die gleiche Fehlermeldung.

Das funktioniert auch nicht

Gruß

Gabi

Unter hkey_local\maschine\software\oracle hab ich nachgeschaut, dort ist German angegeben bei nls_lang

Gruß

Gabi

  • 2 Wochen später...

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

Besten Dank, das hat funktioniert.

Gruß

Gabi

nichts zu danken, immer wieder. ;-)

mfg

schawenn

Archiv

Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.