FirebirdSQL logo
 EXCEPTIONCHARACTER SET 

Spezifische Attribute

Die CREATE COLLATION-Anweisung kann auch spezielle Attribute enthalten, um die Kollatierung zu konfigurieren.Die verfügbaren spezifischen Attribute sind in der folgenden Tabelle aufgeführt.Nicht alle spezifischen Attribute gelten für jede Sortierung.Wenn das Attribut nicht auf die Sortierung anwendbar ist, aber beim Erstellen angegeben wird, wird kein Fehler verursacht.

Important

Bei spezifische Attributnamen muss die Groß-/Kleinschreibung beachtet werden.

In der Tabelle gibt “1 bpc” an, dass ein Attribut für Kollationen von Zeichensätzen mit 1 Byte pro Zeichen gültig ist (sogenannte schmale Zeichensätze), und “UNI” für “Unicode Collations”.

Table 1. Spezifische Sortierattribute
Atrribute Werte Gültig für Hinweis

DISABLE-COMPRESSIONS

0, 1

1 bpc, UNI(4.0.1+)

Deaktiviert Kompressionen (auch bekannt als Kontraktionen).Kompressionen bewirken, dass bestimmte Zeichenfolgen als atomare Einheiten sortiert werden, z.B. Spanisch c+h als einzelnes Zeichen ch

DISABLE-EXPANSIONS

0, 1

1 bpc

Deaktiviert Erweiterungen.Erweiterungen bewirken, dass bestimmte Zeichen (z.B. Ligaturen oder umlaute Vokale) als Zeichenfolgen behandelt und entsprechend sortiert werden

ICU-VERSION

Standard oder M.m

UNI

Gibt die zu verwendende ICU-Bibliotheksversion an.Gültige Werte sind diejenigen, die im entsprechenden <intl_module>-Element in intl/fbintl.conf definiert sind.Format: entweder das Stringliteral “default” oder eine Major+Minor Versionsnummer wie “3.0” (beide ohne Anführungszeichen).

LOCALE

xx_YY

UNI

Gibt das Kollatierungsgebietsschema an.Erfordert eine vollständige Version der ICU-Bibliotheken.Format: ein Gebietsschema-String wie “du_NL” (ohne Anführungszeichen)

Seit Firebird 4.0.1 unterstützt diese Option auch ICU-Locale-Keywords und -Attribute.

MULTI-LEVEL

0, 1

1 bpc

Verwendet mehr als eine Sortierebene

NUMERIC-SORT

0, 1

UNI

Behandelt zusammenhängende Gruppen von Dezimalziffern in der Zeichenfolge als atomare Einheiten und sortiert sie numerisch.(Dies wird auch als natürliche Sortierung bezeichnet)

SPECIALS-FIRST

0, 1

1 bpc

Ordnet Sonderzeichen (Leerzeichen, Symbole usw.) vor alphanumerischen Zeichen an

Tip

Wenn Sie Ihrer Datenbank einen neuen Zeichensatz mit seiner Standardsortierung hinzufügen möchten, deklarieren Sie die gespeicherte Prozedur sp_register_character_set(name, max_bytes_per_character), die sich in misc/intl.sql im Firebird-Installationsverzeichnis befindet, und führen Sie sie aus.

Damit dies funktioniert, muss der Zeichensatz auf dem System vorhanden und in einer .conf-Datei im intl-Unterverzeichnis registriert sein.

Wer kann eine Kollation erstellen

Die CREATE COLLATION-Anweisung kann ausgeführt werden durch:

Der Benutzer, der die CREATE COLLATION-Anweisung ausführt, wird Eigentümer der Kollation.

docnext count = 4

Beispiele zur Nutzung von CREATE COLLATION

  1. Erstellen einer Kollatierung mit dem Namen aus der Datei fbintl.conf (Groß-/Kleinschreibung beachten)

    CREATE COLLATION ISO8859_1_UNICODE FOR ISO8859_1;
  2. Erstellen einer Kollatierung unter Verwendung eines speziellen (benutzerdefinierten) Namens (der “externe” Name muss vollständig mit dem Namen in der Datei fbintl.conf übereinstimmen)

    CREATE COLLATION LAT_UNI
      FOR ISO8859_1
      FROM EXTERNAL ('ISO8859_1_UNICODE');
  3. Erstellen einer Sortierung ohne Beachtung der Groß-/Kleinschreibung basierend auf einer bereits in der Datenbank vorhandenen.

    CREATE COLLATION ES_ES_NOPAD_CI
      FOR ISO8859_1
      FROM ES_ES
      NO PAD
      CASE INSENSITIVE;
  4. Erstellen einer Sortierung ohne Beachtung der Groß-/Kleinschreibung basierend auf einer bereits in der Datenbank vorhandenen Sortierung mit bestimmten Attributen

    CREATE COLLATION ES_ES_CI_COMPR
      FOR ISO8859_1
      FROM ES_ES
      CASE INSENSITIVE
      'DISABLE-COMPRESSIONS=0';
  5. Erstellen einer Sortierung ohne Beachtung der Groß-/Kleinschreibung nach dem Wert von Zahlen (die sogenannte natürliche Sortierung)

    CREATE COLLATION nums_coll FOR UTF8
      FROM UNICODE
      CASE INSENSITIVE 'NUMERIC-SORT=1';
    
    CREATE DOMAIN dm_nums AS varchar(20)
      CHARACTER SET UTF8 COLLATE nums_coll; -- Original-(Hersteller-)Nummern
    
    CREATE TABLE wares(id int primary key, articul dm_nums ...);

DROP COLLATION

Verwendet für

Eine Kollation aus der Datenbank entfernen

Verfügbar in

DSQL

Syntax
DROP COLLATION collname
Table 1. DROP COLLATION-Anweisungsparameter
Parameter Beschreibung

collname

Der Name der Kollation

Die Anweisung DROP COLLATION entfernt die angegebene Kollatierung aus der Datenbank, falls vorhanden.Wenn die angegebene Sortierung nicht vorhanden ist, wird ein Fehler ausgegeben.

Tip

Wenn Sie einen ganzen Zeichensatz mit all seinen Kollatierungen aus der Datenbank entfernen möchten, deklarieren Sie die gespeicherte Prozedur sp_unregister_character_set(name) aus dem misc/intl.sql-Unterverzeichnis der Firebird-Installation und führen Sie sie aus.

Wer kann eine Kollation abgeben

Die Drop COLLATION-Anweisung kann ausgeführt werden durch:

  • Administratoren

  • Der Besitzer der Kollation

  • Benutzer mit dem Privileg DROP ANY COLLATION

Beispiele für DROP COLLATION

Löschen der Kollatierung ES_ES_NOPAD_CI.
DROP COLLATION ES_ES_NOPAD_CI;