Firebird Documentation IndexFirebird 2.5 SprachreferenzStatements der Data Definition (DDL) → COLLATION
Firebird Home Firebird Home Zurück: EXCEPTIONFirebird Documentation IndexNach oben: Statements der Data Definition (DDL)Weiter: CHARACTER SET

COLLATION

Inhaltsverzeichnis

CREATE COLLATION
DROP COLLATION

CREATE COLLATION

Benutzt für:  Erstellen einer neuen Sortierung für einen unterstützten Zeichensatz, der für die Datenbank verfügbar ist

Verfügbar in: DSQL

Syntax: 

CREATE COLLATION collname
FOR charset
[FROM basecoll | FROM EXTERNAL ('extname')]
[NO PAD | PAD SPACE]
[CASE [IN]SENSITIVE]
[ACCENT [IN]SENSITIVE]
['<specific-attributes>'];

<specific-attributes> ::= <attribute> [; <attribute> ...]

<attribute> ::= attrname=attrvalue
        

Tabelle 5.41. CREATE COLLATION Statement-Parameter

Parameter Beschreibung
collname Der Name, der für die neue Collation verwendet werden soll. Die maximale Länge beträgt 31 Zeichen
charset Ein in der Datenbank vorhandener Zeichensatz
basecoll Eine bereits in der Datenbank vorhandene Collation
extname Der in der Datei .conf verwendete Collation-Name


Die Anweisung CREATE COLLATIONerzeugt“ nichts: Sie dient dazu, eine Datenbank-Collation bekannt zu machen. Die Collation muss bereits auf dem System vorhanden sein, normalerweise in einer Bibliotheksdatei und muss ordnungsgemäß in einer .conf -Datei im Unterverzeichnis intl der Firebird-Installation registriert sein.

Die Collation kann alternativ auf einer basieren, die bereits in der Datenbank vorhanden ist.

Wie die Engine die Collation erkennt

Wenn keine FROM-Klausel vorhanden ist, scannt Firebird die .conf -Dateien im intl -Unterverzeichnis nach einer Collation mit dem Namen, der als Objekt mit CREATE COLLATION gesetzt wurde. Anders ausgedrückt, das Weglassen der FROM basecoll-Klausel entspricht der Angabe von FROM EXTERNAL ('collname').

Bei der Angabe von 'extname' muss die Groß- / Kleinschreibung beachtet werden und sie muss genau mit dem Collations-Namen in der Datei .conf übereinstimmen. Bei den Parametern Collname , Zeichensatz und basecoll wird zwischen Groß- und Kleinschreibung unterschieden, sofern sie nicht in doppelten Anführungszeichen eingeschlossen sind.

Spezifische Attribute

Die verfügbaren spezifischen Attribute sind in der folgenden Tabelle aufgeführt. Nicht alle spezifischen Attribute gelten für jede Collation auch wenn sie nicht durch einen Fehler verursacht werden.

Wichtig

Spezifische Attribute unterscheiden Groß- und Kleinschreibung.

In der Tabelle zeigt „1 bpc“ an, dass ein Attribut für Collationen von Zeichensätzen mit 1 Byte pro Zeichen (sogenannte enge Zeichensätze) gültig ist. „UNI“ steht für „UNICODE Collationen“.

Tabelle 5.42. Spezifische Collations-Attribute

Atrribute Wert Gültig für Kommentar
DISABLE-COMPRESSIONS 0, 1 1 bpc Deaktiviert Komprimierungen (a.k.a. Kontraktionen). Komprimierungen bewirken, dass bestimmte Zeichenfolgen als atomare Einheiten sortiert werden, z.B. spanisch c + h als einzelner Buchstabe ch
DISABLE-EXPANSIONS 0, 1 1 bpc Deaktiviert Erweiterungen. Erweiterungen bewirken, dass bestimmte Zeichen (z. B. Ligaturen oder umlautete Vokale) als Zeichenfolgen behandelt und entsprechend sortiert werden
ICU-VERSION default oder H.U UNI Gibt die zu verwendende ICU-Bibliotheksversion an. Gültige Werte sind diejenigen, die im anwendbaren Element <intl_module> in intl / fbintl.conf . Format: entweder das Stringliteral „default“ oder eine Hauptversion + Unterversion wie „3.0“ (beide nicht angegeben).
LOCALE xx_YY UNI Gibt das Sortierungskriterium an. Benötigt eine vollständige Version von ICU-Bibliotheken. Format: eine Gebietsschema-Zeichenfolge wie „du_NL“ (nicht angegeben)
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 ist auch als natürliche Sortierung bekannt)
SPECIALS-FIRST 0, 1 1 bpc Ordnet Sonderzeichen (Leerzeichen, Symbole etc.) vor alphanumerischen Zeichen


Tipp

Deklarieren Sie die gespeicherte Prozedur sp_register_character_set (name, max_bytes_per_character) , die Sie in misc / intl.sql / im Firebird-Installationsverzeichnis.

Hinweis: Damit dies funktioniert, muss der Zeichensatz auf dem System vorhanden und in einer .conf im Unterverzeichnis intl liegen.

Jeder Benutzer, der mit der Datenbank verbunden ist, kann CREATE COLLATION verwenden, um eine neue Collation hinzuzufügen.

Beispiele für die Verwendung von CREATE COLLATION: 

  1. Erstellen einer Collation mit dem in der Datei fbintl.conf enthaltenen Namen (Groß- und Kleinschreibung beachten).
    CREATE COLLATION ISO8859_1_UNICODE FOR ISO8859_1;
                
  2. Erstellen einer Collation, mithilfe 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 Collation, die Groß- und Kleinschreibung nicht berücksichtigt und auf einer bereits in der Datenbank vorhandenen basiert.
    CREATE COLLATION ES_ES_NOPAD_CI
    FOR ISO8859_1
    FROM ES_ES
    NO PAD
    CASE INSENSITIVE;
                
  4. Erstellen einer Collation, die Groß- und Kleinschreibung nicht berücksichtigt und auf einer bereits in der Datenbank vorhandenen basiert. Angabe spezifischer Attribute.
    CREATE COLLATION ES_ES_CI_COMPR
    FOR ISO8859_1
    FROM ES_ES
    CASE INSENSITIVE
    'DISABLE-COMPRESSIONS=0';
                
  5. Erstellen einer Collation, die Groß- und Kleinschreibung nicht berücksichtigt durch Verwendung von Zahlen (die sogenannte natürliche Collation).
    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 (manufacturer) numbers
    
    CREATE TABLE wares(id int primary key, articul dm_nums ...);
                

Siehe auch: DROP COLLATION

DROP COLLATION

Benutzt für:  Löschen einer Collation aus der Datenbank

Verfügbar in: DSQL

Syntax: 

DROP COLLATION collname
        

Tabelle 5.43. DROP COLLATION Statement-Parameter

Parameter Beschreibung
collname Name der Collation


Die Anweisung DROP COLLATION entfernt die angegebene Collation aus der Datenbank, falls vorhanden. Ein Fehler wird ausgelöst, wenn die angegebene Collation nicht vorhanden ist.

Tipp

Deklarieren und führen Sie die gespeicherte Prozedur sp_unregister_character_set (name) aus dem Unterverzeichnis misc / intl.sql der Firebird-Installation aus, wenn Sie einen ganzen Zeichensatz mit allen Collationen aus der Datenbank entfernen möchten.

Jeder Benutzer, der mit der Datenbank verbunden ist, kann DROP COLLATION verwenden, um eine Collation zu entfernen.

Beispiele für die Verwendung von DROP COLLATION:  Löschen der ES_ES_NOPAD_CI-Collation.

DROP COLLATION ES_ES_NOPAD_CI;
          

Siehe auch: CREATE COLLATION

Zurück: EXCEPTIONFirebird Documentation IndexNach oben: Statements der Data Definition (DDL)Weiter: CHARACTER SET
Firebird Documentation IndexFirebird 2.5 SprachreferenzStatements der Data Definition (DDL) → COLLATION