このセクションでは、表 5 に各データ・タイプの優先順位リストが示されます。以下に注意してください。
このような重複する関数が存在する場合、どちらを呼び出すかの選択は、2 つのパス・アルゴリズムで決定されます。最初のパスは、非ユニコード・データベースの関数を解決するために使用されるものと同じアルゴリズムを使用して一致を探そうとします。一致が見つからない場合は、CHAR および GRAPHIC ストリングについて次のプロモーション優先順位を考慮して 2 番目のパスが行われます。
GRAPHIC-->CHAR-->VARGRAPHIC-->VARCHAR-->LONG VARGRAPHIC-->LONG VARCHAR-->DBCLOB-->CLOB
次の項目が、「特殊タイプを含む次のキャストがサポートされています」と紹介されているリストに追加されました。
以下は、「表 6. 組み込みデータ・タイプ間でサポートされるキャスト」に対する更新です。影響を受ける表の行のみが示されています。
表 17. 組み込みデータ・タイプ間で サポートされているキャスト
ターゲット・データ・ タイプ > ソース・データ・タイプ V |
C H A R |
V A R C H A R |
L O N G V A R C H A R |
C L O B |
G R A P H I C |
V A R G R A P H I C |
L O N G V A R G R A P H I C |
D B C L O B |
---|---|---|---|---|---|---|---|---|
CHAR | Y | Y | Y | Y | Y1 | Y1 | - | - |
VARCHAR | Y | Y | Y | Y | Y1 | Y1 | - | - |
LONGVARCHAR | Y | Y | Y | Y | - | - | Y1 | Y1 |
CLOB | Y | Y | Y | Y | - | - | - | Y1 |
GRAPHIC | Y1 | Y1 | - | - | Y | Y | Y | Y |
VARGRAPHIC | Y1 | Y1 | - | - | Y | Y | Y | Y |
LONGVARGRAPHIC | - | - | Y1 | Y1 | Y | Y | Y | Y |
DBCLOB | - | - | - | Y1 | Y | Y | Y | Y |
文字および漢字データの両方を含む割り当てと比較は、ストリングのいずれかがリテラルのときにのみサポートされます。関数解決については、漢字リテラルと文字リテラルは文字および漢字関数パラメーターの両方に一致します。
以下は、「表 7. 割り当てと比較についてのデータ・タイプ互換性」に対する更新です。影響を受ける表の行と、新しい脚注 6 のみが示されています。
オペランド | 2 進整数 | 10 進数 | 浮動小数点 | 文字ストリング | 漢字ストリング | 日付 | 時刻 | タイム・スタンプ | バイナリー・ストリング | UDT |
---|---|---|---|---|---|---|---|---|---|---|
文字ストリング | No | No | No | Yes | Yes 6 | 1 | 1 | 1 | No 3 | 2 |
漢字ストリング | No | No | No | Yes 6 | Yes | No | No | No | No | 2 |
ストレージ割り当て
このサブセクションの最後の段落が次のように変更されました。
ストリングが固定長の列に割り当てられ、ストリングの長さがターゲットの長さ属性より小さいとき、ストリングには右側に必要な数の 1 バイト、2 バイト、または UCS-2 の 2 ブランクが埋められます。埋め込み文字は、FOR BIT DATA 属性で定義された列についても、常にブランクになります。
検索割り当て
このサブセクションの 3 番目の段落が次のように変更されました。
文字ストリングが固定長の変数に割り当てられ、ストリングの長さがターゲットの長さ属性より小さいとき、ストリングには右側に必要な数の 1 バイト、2 バイト、または UCS-2 の 2 ブランクが埋められます。埋め込み文字は、FOR BIT DATA 属性で定義されたストリングについても、常にブランクになります。
ストリング割り当ての変換規則
以下の段落がこのサブセクションの終わりに追加されました。
ユニコード・データベースの場合、文字ストリングを漢字の列に、漢字ストリングを文字の列に割り当てることができます。
漢字ストリング割り当てに関する DBCS 考慮事項
このサブセクションの最初の段落が次のように変更されました。
漢字ストリング割り当ては、文字ストリングに似た方法で処理されます。非ユニコード・データベースの場合、漢字ストリング・データ・タイプは他の漢字ストリング・データ・タイプとのみ互換性を持ち、数値、文字ストリング、または日付データ・タイプとは互換性がありません。ユニコード・データベースの場合、漢字ストリング・データ・タイプは文字ストリング・データ・タイプと互換性があります。
比較の変換規則
このサブセクションが次のように変更されました。
2 つのストリングを比較するとき、必要に応じ、最初に一方のストリングがもう一方のストリングのエンコード・スキームおよびコード・ページに変換されます。詳しくは SQL 解説書 の「第 3 章 言語エレメント」の「ストリング変換の規則」を参照してください。
これは、サブセクション「漢字ストリング」の後に挿入される新しいサブセクションです。
ユニコード・データベースでは、文字ストリングと漢字ストリングには互換性があります。
オペランド... | 他のオペランド... | 結果のデータ・タイプ... |
---|---|---|
GRAPHIC(x) | CHAR(y) または GRAPHIC(y) | GRAPHIC(z)、z = max(x,y) |
VARGRAPHIC(x) | CHAR(y) または VARCHAR(y) | VARGRAPHIC(z)、z = max(x,y) |
VARCHAR(x) | GRAPHIC(y) または VARGRAPHIC | VARGRAPHIC(z)、z = max(x,y) |
LONG VARGRAPHIC | CHAR(y) または VARCHAR(y) または LONG VARCHAR | LONG VARGRAPHIC |
LONG VARCHAR | GRAPHIC(y) または VARGRAPHIC(y) | LONG VARGRAPHIC |
DBCLOB(x) | CHAR(y) または VARCHAR(y) または CLOB(y) | DBCLOB(z)、z = max(x,y) |
DBCLOB(x) | LONG VARCHAR | DBCLOB(z)、z = max(x,16350) |
CLOB(x) | GRAPHIC(y) または VARGRAPHIC(y) | DBCLOB(z)、z = max(x,y) |
CLOB(x) | LONG VARGRAPHIC | DBCLOB(z)、z = max(x,16350) |
3 番目のポイントが、このセクションの次のリストに追加されました。
コード・ページの各ペアについて、次の規則を順番に適用することで結果が決定されます。
以下が追加されました。
ユニコード・データベースでは、文字または漢字ストリングを受け入れる式は、変換がサポートされるストリング・タイプを受け入れます。
以下がこのサブセクションの終わりに追加されました。
ユニコード・データベースでは、文字ストリング・オペランドと漢字ストリング・オペランドの両方を含む連結は、最初に文字オペランドを漢字オペランドに変換します。非ユニコード・データベースでは、連結は文字および漢字オペランドの両方を扱うことはできません。
次の項目が、「次の規則がすべてのタイプの述部に適用されます」という文で紹介されているリストに追加されました。