フィールド・タイプ変換
LANSAで使用される基本的なフィールド・タイプのグループを以下に示します。
文字/文字列 | 英数字データ(SBCS、SBCSとDBCSの混合、またDBCSのみのいずれか)を保管します。タイプはAlpha、String、Char、およびCLOBです。 |
|---|---|
Unicode 文字/文字列 | Unicode で英数字データを保管します。(文字/文字列はネイティブ・コードページで保管します)多言語でデータを損失することなく扱うことが可能です。タイプは NChar および NVarChar です。「Unicode フィールド タイプ」も参照してください。 |
数値 | 数値データをさまざまな形式で保管します。タイプはSigned、Packed、Integer、およびFloatです。 |
日付/時刻 | 日付と時刻のデータを保管します。タイプはDate、Time、DateTimeです。 |
バイナリー | バイナリー・データを保管します(このデータはコードページ変換に制約されません)。タイプは Binary、VarBinary、BLOB です。 |
LOB | 非常に桁数の多い文字データまたはバイナリー・データを保管します。タイプはCLOB、BLOBです。 |
ブール値 | 真と偽の値を保管します。 |
次の表でグループ間におけるフィールド変換の概要を示します。Yesは、フィールド・タイプ・グループ間の変換が可能なことを表します。ただし、変換は常に正常に行われることを表すものではありません。例えば、DBCSデータからSBCSデータの変換、または"Hello world"などの値を数値に変換することはできません。
一般的な変換規則
変換元と 変換先 | 文字 | Unicode 文字 | 数値 | 日付/時刻 | バイナリ- | LOB 4 | ブール値 |
|---|---|---|---|---|---|---|---|
文字 | あり | あり 5 | あり 1 | あり 1 | あり | あり | あり |
Unicode 文字 | あり | あり | あり | あり | あり | あり | あり |
数値 | あり | あり | あり | あり 2 | なし | なし | あり |
日付/時刻 | あり | あり | あり 2 | あり 3 | なし | なし | なし |
バイナリ- | あり | あり | なし | なし | あり | なし | なし |
LOB 4 | あり | あり 5 | なし | なし | あり | あり | なし |
ブール値 | あり | あり | あり | なし | なし | なし | あり |
上記の表に関する注記
- CLOBはファイル・ポインターとして扱われます。数値や日付/時間フィールド・タイプへの変換はサポートされていません。
- 以下の変換はサポートされません。
- Integer または Float フィールド・タイプと Date/Time フィールド・タイプ間の変換
- Numeric タイプから DateTime への直接変換。Numeric タイプからどのように DateTime の日付と時刻部分を設定すべきか判断する方法がないためです。
- DateTime -> Date、およびDateTime -> Time の変換は明快です。
日付のデフォルトは 1900-01-01、時刻のデフォルトは午前零時 (00:00:00) です。したがって、次のようになります。- Date -> DateTime: 時刻部分には午前零時が設定されます。
- Time -> DateTime: 日付部分には1900-01-01が設定されます。
- Date -> Time: Timeは常に午前零時になります。
- Time -> Date: Dateは常に1900-01-01になります。
- LOBの「値」はファイル名です。したがって、変換の際にコピーされるのはファイル名で、データではありません。不適切なファイル名がLOBにコピーされると、ある段階で障害が発生します。
- Unicode 文字列からネイティブ文字列へ変換する場合、組み込みファンクション AsNativeString の使用が必要な場合があります。