Ultra Light では、CAST または CONVERT 関数を使用することで、データ型の変換を明示的に要求できます。
ほとんどの場合、自己キャストは処理にまったく影響しません。ただし、CHAR/VARCHAR、BINARY/VARBINARY、および NUMERIC への自己キャストでは、何らかの処理が行われます。
CAST または CONVERT は、次の表に示すように、ほとんどのデータ型の組み合わせで使用できます。
ただし、変換できるかどうかは変換に使用される値に左右されます。次の表の「Value-dependent」欄は、特定の変換エラーが発生しないよう、値に新しいデータ型との互換性が必要であることを示します。次に例を示します。
varchar "1234" を long にキャストした場合、この変換はサポートされます。ただし、varchar "hello" を long にキャストした場合、hello が数値ではないため SQLE_CONVERSION_ERROR エラーが発生します。
long 1234 を short にキャストした場合、この変換はサポートされます。ただし、long 1000000 を short にキャストした場合、1000000 は short で保持できる数値の範囲を超えているため SQLE_OVERFLOW_ERROR エラーが発生します。
変換元 | 可 | 不可 | 値依存 |
---|---|---|---|
BINARY または VARBINARY |
CHAR または VARCHAR BINARY LONG BINARY BIT TINYINT SHORT INT SIGNED SHORT LONG INT SIGNED LONG BIGINT SIGNED BIG |
LONG VARCHAR REAL TIME TIMESTAMP DOUBLE DATE |
NUMERIC UID1 |
LONG BINARY |
BINARY LONG BINARY |
BIT CHAR または VARCHAR LONG VARCHAR TINYINT SHORT INT SIGNED SHORT LONG INT SIGNED LONG BIGINT SIGNED BIG REAL DOUBLE NUMERIC DATE TIME TIMESTAMP UID |
なし |
BIT |
CHAR または VARCHAR BINARY BIT TINYINT SHORT INT SIGNED SHORT LONG INT SIGNED LONG BIGINT REAL SIGNED BIG DOUBLE NUMERIC |
LONG VARCHAR LONG BINARY DATE TIME TIMESTAMP UID |
なし |
CHAR または VARCHAR |
BINARY または VARBINARY CHAR または VARCHAR LONG VARCHAR |
LONG BINARY |
BIT TINYINT SIGNED SHORT SHORT INT LONG INT SIGNED LONG BIGINT SIGNED BIG DOUBLE NUMERIC REAL DATE TIME TIMESTAMP UID |
LONG VARCHAR |
CHAR または VARCHAR LONG VARCHAR |
BINARY または VARBINARY LONG BINARY BIT TINYINT SHORT INT SIGNED SHORT LONG INT SIGNED LONG BIGINT SIGNED BIG REAL NUMERIC DATE TIME TIMESTAMP DOUBLE UID |
|
TINYINT |
BINARY または VARBINARY CHAR または VARCHAR TINYINT SHORT INT SIGNED SHORT LONG INT SIGNED LONG BIGINT SIGNED BIG REAL DOUBLE NUMERIC |
LONG VARCHAR LONG BINARY DATE TIME TIMESTAMP UID |
|
SHORT INT |
BINARY または VARBINARY CHAR または VARCHAR SHORT INT LONG INT SIGNED LONG BIGINT SIGNED BIG REAL DOUBLE NUMERIC |
LONG VARCHAR LONG BINARY DATE TIME TIMESTAMP UID |
BIT TINYINT SIGNED SHORT |
SIGNED SHORT |
BINARY または VARBINARY CHAR または VARCHAR SIGNED SHORT SIGNED LONG SIGNED BIG REAL DOUBLE NUMERIC |
LONG VARCHAR LONG BINARY DATE TIME TIMESTAMP UID |
SHORT INT LONG INT BIGINT BIT TINYINT |
LONG INT |
BINARY または VARBINARY CHAR または VARCHAR LONG INT BIGINT SIGNED BIG REAL DOUBLE NUMERIC |
LONG VARCHAR LONG BINARY DATE TIME TIMESTAMP UID |
BIT TINYINT SHORT INT SIGNED SHORT SIGNED LONG |
SIGNED LONG |
BINARY または VARBINARY CHAR または VARCHAR SIGNED LONG SIGNED BIG REAL DOUBLE NUMERIC DATE TIMESTAMP |
LONG VARCHAR LONG BINARY TIME UID |
BIT TINYINT SHORT INT SIGNED SHORT LONG INT BIGINT |
BIGINT |
BINARY または VARBINARY CHAR または VARCHAR BIGINT REAL DOUBLE NUMERIC |
LONG VARCHAR LONG BINARY DATE TIME TIMESTAMP UID |
BIT TINYINT SHORT INT SIGNED SHORT LONG INT SIGNED LONG SIGNED BIG |
SIGNED BIG |
BINARY または VARBINARY CHAR または VARCHAR SIGNED BIG REAL DOUBLE NUMERIC DATE TIMESTAMP |
LONG VARCHAR LONG BINARY TIME UID |
BIT TINYINT SHORT INT SIGNED SHORT LONG INT SIGNED LONG BIGINT |
REAL |
CHAR または VARCHAR REAL DOUBLE NUMERIC |
LONG VARCHAR BINARY または VARBINARY LONG BINARY DATE TIME TIMESTAMP UID |
BIT TINYINT SHORT INT SIGNED SHORT LONG INT SIGNED LONG BIGINT SIGNED BIG |
DOUBLE |
CHAR または VARCHAR DOUBLE NUMERIC |
LONG VARCHAR BINARY または VARBINARY LONG BINARY DATE TIME TIMESTAMP UID |
BIT TINYINT SHORT INT SIGNED SHORT LONG INT SIGNED LONG BIGINT SIGNED BIG REAL |
NUMERIC |
CHAR または VARCHAR REAL NUMERIC DOUBLE |
LONG VARCHAR LONG BINARY DATE TIME TIMESTAMP UID |
BINARY または VARBINARY2 BIT SHORT INT SIGNED SHORT LONG INT SIGNED LONG BIGINT SIGNED BIG TINYINT |
DATE |
CHAR または VARCHAR SIGNED LONG SIGNED BIG DATE TIMESTAMP |
LONG VARCHAR LONG BINARY BIT TINYINT SHORT INT SIGNED SHORT LONG INT BIGINT REAL DOUBLE NUMERIC TIME BINARY または VARBINARY UID |
|
TIME |
CHAR または VARCHAR TIME TIMESTAMP |
LONG VARCHAR LONG BINARY BIT TINYINT SHORT INT SIGNED SHORT LONG INT SIGNED LONG BIGINT SIGNED BIG REAL DOUBLE NUMERIC DATE BINARY または VARBINARY UID |
|
TIMESTAMP |
CHAR または VARCHAR SIGNED LONG SIGNED BIG DATE TIME TIMESTAMP |
LONG VARCHAR LONG BINARY BIT TINYINT SHORT INT SIGNED SHORT LONG INT BIGINT REAL DOUBLE NUMERIC BINARY または VARBINARY UID |
|
UID |
CHAR または VARCHAR UID |
LONG VARCHAR LONG BINARY BIT TINYINT SHORT INT SIGNED SHORT LONG INT SIGNED LONG BIGINT SIGNED BIG REAL DOUBLE NUMERIC DATE TIME TIMESTAMP |
BINARY または VARBINARY1 |
1 UUID との互換性を保つには、BINARY 値の長さが 16 バイトである必要があります。
2 ソースの NUMERIC 値が BIGINT にキャストできる場合のみ機能します。
Copyright © 2009, iAnywhere Solutions, Inc. - SQL Anywhere 11.0.1 |