Click here to view and discuss this page in DocCommentXchange. In the future, you will be sent there automatically.

SQL Anywhere 12.0.1 » SQL Anywhere サーバー データベース管理 » データベース設定 » 国際言語と文字セット » 文字セットと照合の参考情報

 

トルコ語文字セットと照合

トルコ語には、I に相当する文字に 2 通りの表記形式があります。1 つ目の形式は、I-dot と呼ばれるもので、次のように表記されます。

小文字の I-dot と大文字の I-dot。

2 つ目の形式は、I-no-dot と呼ばれるもので、次のように表記されます。

小文字の I-no-dot と大文字の I-no-dot。

これらの文字は同じ文字の変形として表示される場合でも、トルコ語のアルファベットでは別の文字と見なされます。SQL Anywhere では、トルコ語照合 1254TRK を提供して、このような違いに対処しています。

これらの文字の大文字と小文字の変換に関するトルコ語の規則は、ANSI SQL 標準規則と互換性がありません。たとえば、トルコ語では I の小文字に相当するには、以下の文字です。

I-no-dot の小文字

一方、ANSI 標準ではこれは次の文字になります。

I の小文字

このような理由から、大文字と小文字を区別しない場合に正しく一致させることができるのは、一致させるテキストがトルコ語か英語/ANSI であるかどうかによります。多くのコンテキストでは、これを区別するだけの十分な情報がないので、そのようなデータベースでは標準外の動作となることがあります。

たとえば、次の文を 1254TRK 照合を使用するデータベースに対して実行するとします。

ANSI 文字 I の大文字小文字と、トルコ語の I-dot と I-no-dot の大文字小文字との間で、どのような不一致が発生する可能性があるかを示す SELECT 文。

最初の文はシステムオブジェクトを参照しており、名前の照合には ANSI SQL 変換規則が必要です。2 番目の文はユーザーオブジェクトを参照しており、名前の照合にはトルコ語変換規則が必要です。ここで、データベースサーバーは、オブジェクトが何であるかを確認できるまでは使用すべき変換規則を判断できず、使用する変換規則が確認できるまではオブジェクトが何であるかを判断できません。この状況においては、システムおよびユーザーオブジェクトの両方を満足させるような解決策はありません。この例では、データベースサーバーがトルコ語照合 1254TRK を使用しており、I の小文字が I の大文字と同じであるとは見なされないので、最初の文は失敗します。2 番目の文は成功します。

トルコ語と ANSI 標準には互換性がないため、トルコ語のデータベースに含まれるシステムオブジェクトを参照する場合は、オブジェクト名の大文字と小文字 (そのオブジェクトの作成時に使用された大文字と小文字) を正確に指定する必要があります。上記の最初の文は次のように記述します。

ANSI 文字の大文字だけで指定された SELECT 文

実際は、文字 I のみ大文字と小文字を正しく対応させます。

別の方法として、通常のやり方ではありませんが、次のように文を記述する方法も可能です。

小文字の I-no-dot を使用した SELECT 文

INSERT などのキーワードは、トルコ語データベースでも大文字小文字の区別がありません。SQL Anywhere では、すべてのキーワードが英語の文字のみを使用していると認識しているので、キーワードの一致に ANSI の大文字と小文字の変換規則を使用します。また SQL Anywhere は、組み込み関数などの特定の識別子にこの方法を適用します。ただし、カタログ内に保管されている名前を持つオブジェクトは、上記のように正しい大文字と小文字または文字を使用して指定してください。正しい大文字と小文字を確認するには、システムオブジェクトを定義するシステムビューを調べてください。

 参照

大文字と小文字を区別しないトルコ語データベースのデータ
代替トルコ語照合 1254TRKALT