外部Javaプロシージャを作成または置き換える場合、システムはパラメータ マッピングの種類に基づいて、すべてのSQLデータ型を対応するJavaデータ型に変換したり、その逆の変換を行なったりします。
外部プロシージャは単純マッピングにデフォルト設定されていて、SQLデータ型は、Javaプリミティブ型または、適切なプリミティブ型が存在しないときはJavaクラスにマップされます。言い換えれば、単純マッピング列にJavaの型がある場合、デフォルトのマッピングはその型にマップされます。単純マッピング列に、SQLデータ型に適用なしエントリがある場合、デフォルト マッピングは、オブジェクト マッピング列のJavaクラスにマップされます。
nullの受渡しを許可するJava外部プロシージャを作成または置き換える場合、単純マッピングを使用することはできません。デフォルト マッピングをオーバーライドするには、EXTERNAL NAME句のパラメータ リストにあるオブジェクト マッピング列から適切なJavaクラスを指定する必要があります。
次のテーブルでは、SQLとJavaとの間のデータ型マッピングを定義します。
| SQLデータ型 | Javaデータ型 | ||
|---|---|---|---|
| 単純マッピング | 単純マッピングJavaプリミティブ記号 | オブジェクト マッピング | |
| BYTEINT | バイト | B | java.lang.Byte |
| SMALLINT | short | S | java.lang.Short |
| INTEGER | int | I | java.lang.Integer |
| BIGINT | long | J | java.lang.Long |
| NUMERIC | 使用不可 | 使用不可 | java.math.BigDecimal |
| DECIMAL | 使用不可 | 使用不可 | java.math.BigDecimal |
| FLOAT | double | D | java.lang.Double |
| REAL | double | D | java.lang.Double |
| DOUBLE PRECISION | double | D | java.lang.Double |
| BYTE | 使用不可 | B | byte[] |
| VARBYTE | 使用不可 | B | byte[] |
| BLOB | 使用不可 | 使用不可 | java.sql.Blob |
| DATE | 使用不可 | 使用不可 | java.sql.Date |
| TIME TIMEは、Teradata Databaseが提供する完全ナノ秒粒度はサポートしません。 |
使用不可 | 使用不可 | java.sql.Time |
| TIMESTAMP | 使用不可 | 使用不可 | java.sql.Timestamp |
| INTERVAL | 使用不可 | 使用不可 | java.lang.String |
| CHARACTER | 使用不可 | 使用不可 | java.lang.String |
| VARCHAR | 使用不可 | 使用不可 | java.lang.String |
| CLOB | 使用不可 | 使用不可 | java.sql.Clob |
| GRAPHIC | 使用不可 | 使用不可 | 使用不可 |
| VARGRAPHIC | 使用不可 | 使用不可 | 使用不可 |
| UDT | 未サポート | 使用不可 | 未サポート |