リリース情報


43.7 データ・タイプ情報

43.7.1 データ・タイプのプロモーション

このセクションでは、表 5 に各データ・タイプの優先順位リストが示されます。以下に注意してください。

  1. ユニコード・データベースの場合、以下が同等のデータ・タイプと見なされます。
  2. ユニコード・データベースでは、同等の CHAR および GRAPHIC データ・タイプ間で関数シグニチャーのみが異なる (例えば foo(CHAR(8)) と foo(GRAPHIC(8)) など) 関数を作成することが可能です。将来のリリースへの移行を行う前に、これらのどちらかをドロップしなければならなくなるため、このような重複する関数は定義しないことを強くお勧めします。

    このような重複する関数が存在する場合、どちらを呼び出すかの選択は、2 つのパス・アルゴリズムで決定されます。最初のパスは、非ユニコード・データベースの関数を解決するために使用されるものと同じアルゴリズムを使用して一致を探そうとします。一致が見つからない場合は、CHAR および GRAPHIC ストリングについて次のプロモーション優先順位を考慮して 2 番目のパスが行われます。

    GRAPHIC-->CHAR-->VARGRAPHIC-->VARCHAR-->LONG VARGRAPHIC-->LONG VARCHAR-->
         -->DBCLOB-->CLOB
    

|43.7.2 データ・タイプ間のキャスト

|次の項目が、「特殊タイプを含む次のキャストがサポートされています」と |紹介されているリストに追加されました。

|以下は、「表 6. 組み込みデータ・タイプ間でサポートされる |キャスト」に対する更新です。 |影響を受ける表の行のみが示されています。
|

|表 19. 組み込みデータ・タイプ間で サポートされているキャスト

ターゲット・データ・
タイプ >
 
 
 
 
 
 
ソース・データ・タイプ 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 - - Y2 Y1 Y Y Y Y
|

|1
|キャストはユニコード・データベースでのみサポートされています。

|2
|キャストはユニコード・データベースでのみサポートされています。明示的な |キャストのみがサポートされます。 |

43.7.3 割り当てと比較

文字および漢字データの両方を含む割り当てと比較は、ストリングのいずれかがリテラルのときにのみサポートされます。関数解決については、漢字リテラルと文字リテラルは文字および漢字関数パラメーターの両方に一致します。

以下は、「表 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

6
ユニコード・データベースでのみサポートされます。

43.7.3.1 ストリング割り当て

ストレージ割り当て

このサブセクションの最後の段落が次のように変更されました。

ストリングが固定長の列に割り当てられ、ストリングの長さがターゲットの長さ属性より小さいとき、ストリングには右側に必要な数の 1 バイト、2 バイト、または UCS-2 の 2 ブランクが埋められます。埋め込み文字は、FOR BIT DATA 属性で定義された列についても、常にブランクになります。

検索割り当て

このサブセクションの 3 番目の段落が次のように変更されました。

文字ストリングが固定長の変数に割り当てられ、ストリングの長さがターゲットの長さ属性より小さいとき、ストリングには右側に必要な数の 1 バイト、2 バイト、または UCS-2 の 2 ブランクが埋められます。埋め込み文字は、FOR BIT DATA 属性で定義されたストリングについても、常にブランクになります。

2
UCS-2 はいくつかの SPACE 文字を異なるプロパティーで定義します。ユニコード・データベースの場合、データベース・マネージャーは常に、x'0020' の位置の ASCII SPACE を UCS-2 ブランクとして使用します。EUC データベースの場合、位置 x'3000' の IDEOGRAPHIC SPACE が埋めこみ GRAPHIC ストリングに使用されます。

ストリング割り当ての変換規則

以下の段落がこのサブセクションの終わりに追加されました。

ユニコード・データベースの場合、文字ストリングを漢字の列に、漢字ストリングを文字の列に割り当てることができます。

漢字ストリング割り当てに関する DBCS 考慮事項

このサブセクションの最初の段落が次のように変更されました。

漢字ストリング割り当ては、文字ストリングに似た方法で処理されます。非ユニコード・データベースの場合、漢字ストリング・データ・タイプは他の漢字ストリング・データ・タイプとのみ互換性を持ち、数値、文字ストリング、または日付データ・タイプとは互換性がありません。ユニコード・データベースの場合、漢字ストリング・データ・タイプは文字ストリング・データ・タイプと互換性があります。

43.7.3.2 ストリング比較

比較の変換規則

このサブセクションが次のように変更されました。

2 つのストリングを比較するとき、必要に応じ、最初に一方のストリングがもう一方のストリングのエンコード・スキームおよびコード・ページに変換されます。詳しくは「SQL 解説書」の『第 3 章 言語エレメント』の『ストリング変換の規則』を参照してください。

43.7.4 結果データ・タイプの規則

43.7.4.1 ユニコード・データベースの文字および漢字ストリング

これは、サブセクション『漢字ストリング』の後に挿入される新しいサブセクションです。

ユニコード・データベースでは、文字ストリングと漢字ストリングには互換性があります。

オペランド... 他のオペランド... 結果のデータ・タイプ...
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)

43.7.5 ストリング変換の規則

3 番目のポイントが、このセクションの次のリストに追加されました。

コード・ページの各ペアについて、次の規則を順番に適用することで結果が決定されます。

1
非ユニコード・データベースでは、異なるエンコード・スキーム間の変換はサポートされていません。

43.7.6 式

以下が追加されました。

ユニコード・データベースでは、文字または漢字ストリングを受け入れる式は、変換がサポートされるストリング・タイプを受け入れます。

43.7.6.1 連結演算子

以下がこのサブセクションの終わりに追加されました。

ユニコード・データベースでは、文字ストリング・オペランドと漢字ストリング・オペランドの両方を含む連結は、最初に文字オペランドを漢字オペランドに変換します。非ユニコード・データベースでは、連結は文字および漢字オペランドの両方を扱うことはできません。

43.7.7 述部

次の項目が、「次の規則がすべてのタイプの述部に適用されます」という文で紹介されているリストに追加されました。


[ ページのトップ | 前ページ | 次ページ | 目次 | 索引 ]