第4章 データ型
Data Virtualization タイプシステムは Java/JDBC タイプに基づいています。ランタイムオブジェクトは、Long、Integer、boolean、String などの対応する Java クラスによって表されます。詳細は、「 ランタイムタイプ 」を参照してください。ドメインタイプを使用してタイプシステムを拡張できます。詳細は、「 ドメインの DDL メタデータ 」を参照してください。
4.1. ランタイムタイプ リンクのコピーリンクがクリップボードにコピーされました!
Data Virtualization はランタイムタイプのコアセットと連携します。ランタイムタイプは、設計時に type フィールドで定義されるセマンティック型と異なる場合があります。ランタイムタイプは設計時に指定することも、セマンティックタイプに最も近いベースタイプとして自動的に選択されます。
タイプが length、精度、またはスケール引数で宣言されていても、これらの制限はランタイムシステムで事実上無視されますが、OData、ODBC、JDBC によってエッジで強制/報告される可能性があります。地理空間型は同様の方法で動作します。拡張メタデータは、ツール/ODataで使用するために SRID、タイプ、ディメンションの数が必要になる場合がありますが、まだ実施されていません。一部のインスタンスでは、SRID が関連付けられたことを確認するには、ST_SETSRID 関数を使用する必要がある場合があります。
タイプ | 説明 | Java ランタイムクラス | JDBC 型 | ODBC タイプ |
---|---|---|---|---|
文字列 または varchar | 最大長の 4000 の変数長の文字列。 | java.lang.String | VARCHAR | VARCHAR |
varbinary | 最大期間が 8192 の変数長バイナリー文字列。 | byte[] [1] | VARBINARY | VARBINARY |
char | 1 つの 16 ビット文字 - 基本的なマルチコントロールプレーン以外の値を表すことはできません。この制限は、トリミング、textagg、texttable などの単一の文字を想定する関数/式にも適用されます。 | java.lang.Character | CHAR | CHAR |
boolean | true、false、または null(unknown)できる単一のビットまたはブール値 | java.lang.Boolean | BIT | SMALLINT |
バイトまたは小さな整数 | numeric, integral type, signed 8 ビット | java.lang.Byte | TINYINT | SMALLINT |
short または smallint | numeric, integral type, signed 16 ビット | java.lang.Short | SMALLINT | SMALLINT |
整数またはシリアル | 数値、整数型、署名済み 32 ビット。また、serial 型は null ではないことを意味し、1 から開始する自動増分値があります。シリアル番号タイプは、自動的に UNIQUE ではありません。 | java.lang.Integer | INTEGER | INTEGER |
long または bigint | numeric, integral type, signed 64bit | java.lang.Long | BIGINT | NUMERIC |
biginteger | 数値、整数型、最大 1000 桁の任意の精度 | java.math.BigInteger | NUMERIC | NUMERIC |
浮動小数点または現実 | 数値、浮動小数点数、32 ビット IEEE 754 浮動小数点番号 | java.lang.Float | REAL | FLOAT |
double | 数値、浮動小数点数、64 ビット IEEE 754 浮動小数点番号 | java.lang.Double | DOUBLE | DOUBLE |
BigDecimal または 10 進数 | 数値、浮動小数点型、最大 1000 桁の精度(任意の精度) | java.math.BigDecimal | NUMERIC | NUMERIC |
date | 1 日(年、月、日)を表す日時 | java.sql.Date | DATE | DATE |
time | 日時(時間、分、秒)を表す日時 | java.sql.Time | TIME | TIME |
timestamp | 日時(年、月、日、時間、分、秒)を表す日時。 | java.sql.Timestamp | TIMESTAMP | TIMESTAMP |
object | 任意の Java オブジェクト。java.lang.336 を実装する必要があります。 | すべて | JAVA_OBJECT | VARCHAR |
blob | バイトストリームを表すバイナリー大きなオブジェクト。 | java.sql.Blob [2] | BLOB | VARCHAR |
clob | 文字の大きいオブジェクト。文字のストリームを表します。 | java.sql.Clob [3] | CLOB | VARCHAR |
xml | XML ドキュメント | java.sql.SQLXML[4] | JAVA_OBJECT | VARCHAR |
geometry | geospatial オブジェクト | java.sql.Blob [5] | BLOB | BLOB |
geography (11.2+) | geospatial オブジェクト | java.sql.Blob [6] | BLOB | BLOB |
json (11.2+) | JSON 文字のストリームを表す文字大きなオブジェクト。 | java.sql.Clob [7] | CLOB | VARCHAR |
- ランタイムタイプは org.teiid.core.types.BinaryType です。翻訳者は BinaryType 値を明示的に処理する必要があります。代わりに、UDF に byte[] 値が渡されます。
- 具体的なタイプは org.teiid.core.types.BlobType となります。
- 具体的なタイプは org.teiid.core.types.ClobType となります。
- 具体的なタイプは org.teiid.core.types.XMLType となります。
- 具体的なタイプは org.teiid.core.types.GeometryType となります。
- 具体的なタイプは org.teiid.core.types.GeographyType となります。
- 具体的なタイプは org.teiid.core.types.JsonType となります。
文字、文字列、および文字が大きいオブジェクト(CLOB)タイプは ASCII/extended ASCII 値に制限されません。文字には最大 2^16-1 と String/CLOB のコードを保持することができます。
配列
type 宣言に各アレイディメンションに [] を追加することで、任意のタイプのアレイが指定されます。
例: アレイタイプ
string[]
string[]
integer[][]
integer[][]
アレイの処理は通常メモリーにあります。大型のアレイ値の使用には依存しないことを推奨します。通常、大規模なオブジェクト(LOB)の配列はシリアライズ時に正しく処理されません。