リリース情報


|43.9 GRAPHIC タイプと DATE/TIME/TIMESTAMP の互換性

|以下のセクションでは、日時値の「文字ストリング」表記という言い方は、「ストリング」表記に |変更されています。DB2 は、ユニコード・データベースに限り、日時値の「漢字ストリング」表記をサポートするようになりました。

|43.9.1 日時値のストリング表記

|

|データ・タイプが DATE、TIME、または TIMESTAMP の値は、ユーザーがすぐに理解できる形の内部形式で表されます。 |しかし、日付値、時刻値、およびタイム・スタンプ値も、ストリングで表すことができます。 |データ・タイプが DATE、TIME、または TIMESTAMP の定数または変数は存在しないため、 |ストリングで表すことができるのは便利です。 |日時値を検索するには、その前に、その日時値がストリング変数に割り当てられている必要があります。CHAR 関数 |または GRAPHIC 関数 (ユニコード・データベースのみ) は、 |日時値をストリング表記に変更するために使用できます。 |ストリング表記は、プログラムがプリコンパイルされるかデータベースにバインドされるときに DATETIME オプションの指定によってオーバーライドされない限り、 |通常は、データベースの国別/地域別コードに関連した、日時値のデフォルト形式です。

|その長さにかかわらず、ラージ・オブジェクト・ストリング、LONG VARCHAR 値または LONG VARGRAPHIC 値を、日時値を表すために使用することはできません (SQLSTATE 42884)。

|内部日時値の操作で日時値の有効なストリング表記が使用される場合、 |そのストリング表記は、操作の前に、日付、時刻、またはタイム・スタンプの内部形式に変換されます。

|日付、時刻、およびタイム・スタンプのストリングに、文字と数字以外は含めることはできません。

|43.9.1.1 日付ストリング、時刻ストリング、および日時ストリング

|これらの用語の定義が少し変更されています。 |「文字ストリング」表記という言い方は、「ストリング」表記に変更されました。

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

|DATE、TIME、および TIMESTAMP を GRAPHIC および VARGRAPHIC にキャストできるように |なりました。GRAPHIC および VARGRAPHIC を DATE、TIME、および TIMESTAMP にキャストできるようになりました。 |漢字ストリングはユニコード・データベースでのみサポートされます。

|43.9.3 割り当てと比較

|割り当てと比較において、 |漢字ストリングと、DATE 値、TIME 値、および TIMESTAMP 値の間でデータ・タイプの互換性ができました。 |漢字ストリングはユニコード・データベースでのみサポートされます。

|43.9.4 日時の割り当て

|

|日時の割り当てにおける基本ルールは、DATE 値、TIME 値、または TIMESTAMP 値は、 |一致するデータ・タイプ (DATE、TIME、または TIMESTAMP のそれぞれ) の列か、 |あるいは、固定長または可変長ストリング変数またはストリング列にのみ割り当てることができる |ということです。LONG VARCHAR、CLOB、LONG VARGRAPHIC、 |DBCLOB、または BLOB 変数または列に割り当てることはできません。 | |

|日時値がストリング変数またはストリング列に割り当てられるとき、 |ストリング表記への変換は自動的に行われます。 |日付、時刻、またはタイム・スタンプのどの部分においても、先行ゼロは保持されます。 |ターゲットに必要な長さは、ストリング表記のフォーマットによって異なります。 |ターゲットの長さが必要な長さよりも長く、しかもターゲットが固定長ストリングである場合は、右にブランクが埋め込まれます。 |ターゲットの長さが必要な長さよりも短い場合は、日時値のタイプとターゲットのタイプによって、結果は異なります。

|ターゲットがホスト変数の場合、以下のルールが適用されます。 |

|43.9.5 DATE

| | |
|>>-DATE--(--expression--)--------------------------------------><
| 
| 

|スキーマは SYSIBM です。

|DATE 関数は、値からの日付を戻します。

|引き数は、日付、タイム・スタンプ、3 652 059 以下の正数、日付またはタイム・スタンプの有効なストリング表記、 |または、LONG VARCHAR、CLOB、LONG VARGRAPHIC、DBCLOB、BLOB 以外の、長さが 7 のストリングである必要があります。

|ユニコード・データベースだけが、日付またはタイム・スタンプの漢字ストリング表記の引き数をサポートします。

|引き数が長さ 7 のストリングである場合、そのストリングは yyyynnn 形式で、有効な日付を表している必要があります。 |ここで、yyyy は年を表す数字で、nnn は年間通算日を表す 001 から 366 の間の数字です。

|この関数の結果は日付です。 |引き数が NULL となる可能性がある場合、結果が NULL となる可能性があります。 |引き数が NULL であれば、結果は NULL 値になります。

|その他のルールは、引き数のデータ・タイプによって異なります。 |

|例:

|列 RECEIVED (タイム・スタンプ) の内部値が '1988-12-25-17.12.30.000000' を表していると想定します。 |

|43.9.6 GRAPHIC

| | |
|>>-GRAPHIC--(--graphic-expression--+------------+--)-----------><
|                                   '-,--integer-'
| 
| 

|スキーマは SYSIBM です。

|GRAPHIC 関数は、漢字ストリング・タイプの GRAPHIC 表記、あるいは日時タイプの GRAPHIC 表記を戻します。 |

|graphic-expression
|漢字ストリング値を戻す です。

|integer
|結果の GRAPHIC データ・タイプの長さ属性を指定する整数値です。 |値は 1 から 127 の間でなければなりません。integer が指定されなければ、 |結果の長さは、1 番目の引き数の長さと同じになります。 |

|この関数の結果は GRAPHIC です。引き数が NULL となる可能性がある場合、結果が NULL となる可能性があります。 |引き数が NULL であれば、結果は NULL 値になります。

|日時から漢字:

|>>-GRAPHIC--(--datetime-expression--+--------------+--)--------><
|                                    '-,--+-ISO---+-'
|                                         +-------+
|                                         +-EUR---+
|                                         +-JIS---+
|                                         '-LOCAL-'
| 
| 
|

|日時から漢字
|

|datetime-expression
|次の 3 つのデータ・タイプのいずれかの式です。

|

|日付
|結果は、2 番目の引き数で指定された形式で表された、日付の漢字ストリング表記です。 |結果の長さは 10 です。2 番目の引き数が指定されており、かつそれが有効な値でない場合は、エラーになります (SQLSTATE 42703)。

|時刻
|結果は、2 番目の引き数で指定された形式で表された、時刻の漢字ストリング表記です。 |結果の長さは 8 です。2 番目の引き数が指定されており、かつそれが有効な値でない場合は、エラーになります (SQLSTATE 42703)。

|タイム・スタンプ
|このタイプには 2 番目の引き数は当てはまりません。指定しないでください (SQLSTATE 42815)。 |結果は、タイム・スタンプの漢字ストリング表記です。 |結果の長さは 26 です。 |

|ストリングのコード・ページは、アプリケーション・サーバーでのデータベースのコード・ページです。 |

|

|43.9.7 TIME

| | | | | |
|>>-TIME--(--expression--)--------------------------------------><
| 
| 

|スキーマは SYSIBM です。

|TIME 関数は、値からの時刻を戻します。

|引き数は、時刻またはタイム・スタンプであるか、または LONG VARCHAR、CLOB、 |LONG VARGRAPHIC、DBCLOB、BLOB を除く、時刻またはタイム・スタンプを表す有効なストリング表記である必要があります。

|ユニコード・データベースだけが、時刻またはタイム・スタンプの漢字ストリング表記の引き数をサポートします。

|この関数の結果は時刻です。 |引き数が NULL となる可能性がある場合、結果が NULL となる可能性があります。 |引き数が NULL であれば、結果は NULL 値になります。

|その他のルールは、引き数のデータ・タイプによって異なります。 |

|例: |

|43.9.8 TIMESTAMP

| | | | | |
|>>-TIMESTAMP--(--expression--+-------------+--)----------------><
|                             '-,expression-'
| 
| 

|スキーマは SYSIBM です。

|TIMESTAMP 関数は、1 つの値または 1 組の値から、タイム・スタンプを戻します。

|ユニコード・データベースだけが、日付、時刻、またはタイム・スタンプが漢字ストリングで表記された引き数をサポートします。

|引き数のルールは、2 番目の引き数が指定されたかどうかによって異なります。 |

|この関数の結果はタイム・スタンプです。 |どちらかの引き数が NULL となる可能性がある場合、結果が NULL となる可能性があります。 |どちらかの引き数が NULL であれば、結果は NULL 値になります。

|もう一方のルールは、2 番目の引き数が指定されたかどうかによって異なります。 |

|例: |

|43.9.9 VARGRAPHIC

| | | | | | | |

|文字から Vargraphic:

|>>-VARGRAPHIC--(--character-string-expression--)---------------><
| 
| 

|日時から Vargraphic:

|>>-VARGRAPHIC--(--datetime-expression--)-----------------------><
| 
| 

|漢字から Vargraphic:

|>>-VARGRAPHIC--(--graphic-string-expression--+------------+----->
|                                             '-,--integer-'
| 
|>--)-----------------------------------------------------------><
| 
| 

|スキーマは SYSIBM です。

|VARGRAPHIC 関数は、次のものの漢字ストリング表記を戻します。 |

|この関数の結果は、いろいろな長さの漢字ストリング (VARGRAPHIC データ・タイプ) です。 |1 番目の引き数が NULL となる可能性がある場合、結果が NULL となる可能性があります。 |1 番目の引き数が NULL であれば、結果は NULL 値になります。

|文字から Vargraphic

|character-string-expression
|値が LONG VARCHAR または CLOB 以外の文字ストリングのデータ・タイプであり、かつ最大長が 16 336 バイト未満の式でなければなりません。 |

|結果の長さ属性は、引き数の長さ属性と同じです。

|S が character-string-expression の値を表すとします。S の中の |各 1 バイト文字は、それに対応する 2 バイト表記、または 2 バイトの置換文字に変換されます。S の中の |各 2 バイト文字は、「そのまま」マップされます。2 バイト文字の 1 番目の |バイトが S の最後のバイトである場合、その文字は、2 バイトの置換文字に変換されます。S 内の |文字の順序は保持されます。

|以下は、変換に関する追加の考慮事項です。 |

|日時から Vargraphic

|datetime-expression
|値が DATE、TIME、または TIMESTAMP データ・タイプである式です。 |

|漢字から Vargraphic

|graphic-string-expression
|漢字ストリング値を戻す式です。

|integer
|いろいろな長さとなる結果の漢字ストリングの長さ属性です。 |値は 0 から 16 336 の間でなければなりません。 |この引き数が指定されなければ、結果の長さは、1 番目の引き数の長さと同じになります。 |

|graphic-string-expression の長さが結果の長さ属性よりも長い場合、 |切り捨てられる文字がすべてブランクで、 |しかも graphic-string-expression が長ストリング (LONG VARGRAPHIC または DBCLOB) でない限り、 |切り捨てが行われ、警告が戻されます (SQLSTATE 01004)。


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