ナレッジ・モジュールによってソース・データがEndeca Serverターゲットに書き込まれる際、データベース・ソースとEndeca Serverターゲット間でデータ型が正しくマップされていない場合にエラーが発生する可能性があります。
たとえば、Endeca Serverデータ型のmdex:timeには、直接対応するものがOracleデータベースにありません。mdex:timeをOracleのデータ型でこれに対応するものにマップしないと、ODIインタフェースの実行時に障害が発生する可能性があります。こうした場合は、ターゲットにおけるEndeca Serverのデータ型を、データベース・ソースにおいて対応するデータ型にマップできます。
次の表には、Endeca Serverデータ型の、対応するOracleおよびMySQLのデータ型へのマッピングが示されています。このマッピング情報は、SQLをサポートしている他のデータベースにも有効な場合があります。Endeca Serverデータ型の追加の詳細は、Oracle Endeca Server開発者ガイドを参照してください。
Endeca Server型 | Oracle型 | MySQL型 | 注意 |
---|---|---|---|
mdex:boolean | NUMBER | TINYINT | mdex:boolean型は、"true"/"false"および1/0の両方をブール値として受け入れます。したがって、varchar型およびint SQL型などの文字列SQL型はmdex:booleanにマップできます。 |
mdex:dateTime | TIMESTAMP | DATETIME | SQL型のTIMESTAMPおよびDATETIMEは、mdex:dateTimeにマップできます。
入力テクノロジ(ステージング領域のテクノロジ)に日時型が存在しない場合は、かわりに文字列型を使用します。mdex:dateTimeにマップする文字列値は、パターン: yyyy '-' mm '-' dd 'T' hh ':' mm ':' ss {'.' s+} Zに一致する必要があります。 例: 2011-11-18T17:00:00Z |
mdex:double | NUMBER | DOUBLE | 数値型はmdex:doubleにマップできます。
文字列型もmdex:doubleにマップできますが、文字列値は有効な数値である必要があります。 |
mdex:duration | VARCHAR2 | VARCHAR | SQL型に期間型はありません。期間値には文字列型を使用します。mdex:durationにマップする文字列値は、書式: 'P' {d 'D'} 'T' {h 'H'} {m 'M'} {s {'.' s+} 'S'}に一致する必要があります。
例: P429DT1H2M3S |
mdex:geocode | VARCHAR2 | VARCHAR | SQL型にジオコード型はありません。ジオコード値には文字列型を使用します。mdex:geocodeにマップする文字列値は、書式: 緯度値 経度値に一致する必要があります。
例: 42.365615 -71.075647 |
mdex:int | NUMBER | INT | 整数型はmdex:intにマップできます。
文字列型もmdex:intにマップできますが、文字列値は有効な整数値である必要があります。 |
mdex:long | NUMBER | BIGINT | 長整数型はmdex:longにマップできます。
文字列型もmdex:longにマップできますが、文字列値は有効な長整数値である必要があります。 |
mdex:string | VARCHAR2 | VARCHAR | VARCHAR、VARCHAR2、TEXTなどの文字列SQL型はmdex:stringにマップできます。 |
mdex:time | VARCHAR2 | TIME | mdex:time型は毎日繰り返す特定の時間を表します。
MySQLでは、時間値がTIME型でサポートされています。 OracleデータベースにはTIME型がありません。mdex:timeには文字列型を使用しますが、文字列値は書式: hh ':' mm ':' ss {'.' s+} Zに一致する必要があります。 例: 18:30:00Z |
ソースのデータ型をEndeca Serverのデータ型にマップするには、次の手順を実行します。
この例の手順では、Oracleのデータ型NUMBERをEndeca Server型mdex:booleanにマップしています。これが必要となるのは、Oracleではブール値を表すためにTrueとFalseではなく1と0が使用されるからです。time、dateTimeおよびgeocodeなどのEndeca serverのデータ型を別のソースのデータ型にマップすることもできます。