DBMS_CLOUDパッケージのOracleデータ型からParquetへのマッピング
Oracleデータ型からParquetデータ型への変換について説明します。
| Oracleタイプ | Parquetタイプ |
|---|---|
| BINARY_DOUBLE | DBL |
| BINARY_FLOAT | FLT |
| DATE | DATE |
| NUMBER(p,s) | DECIMAL(p,s) |
| 番号(p) | デシマル(p) |
| タイムスタンプ(3) | TIMESTAMP_MILLIS |
| タイムスタンプ(3) | TIMESTAMP_MILLIS_UTC |
| タイムスタンプ(6) | TIMESTAMP_MICROS |
| タイムスタンプ(6) | TIMESTAMP_MICROS_UTC |
| タイムスタンプ(9) | TIMESTAMP_NANOS |
| VARCHAR2(4000) | STRING |
NLSセッション・パラメータ
NLSセッション・パラメータNLS_DATE_FORMAT、NLS_TIMESTAMP_FORMAT、NLS_TIMESTAMP_TZ_FORMATおよびNLS_NUMERIC_CHARACTERSは、日付、タイムスタンプ、タイムゾーン付きタイムスタンプ書式、および小数点マーカー付きタイムスタンプの基数セパレータを、それらの列タイプの表が問合せされるときにどのように表示するかを定義します。
また、DBMS_CLOUD.EXPORT_DATAを使用してデータをエクスポートし、Parquet出力を指定した場合、Autonomous AI Databaseはこれらのパラメータの値をNLS_SESSION_PARAMETERS表から読み取ります。Autonomous AI Databaseでは、これらの値を使用して、Oracleデータ型DATEまたはTIMESTAMPをParquet型に変換します。
NLS_SESSION_PARAMETERSパラメータは、RR書式マスク(2文字の年の指定)をサポートします。
DBMS_CLOUD.EXPORT_DATAを使用してParquetにデータをエクスポートする場合、これらのパラメータでは、年のRR書式マスクはサポートされていません。parquetにエクスポートしようとして、NLS_SESSION_PARAMETERSがRR書式マスクを使用するように設定されている場合、アプリケーション・エラーが発生します(RR書式のデフォルト値はNLS_TERRITORYパラメータの値によって異なります)。
パラメータNLS_DATE_FORMAT、NLS_TIMESTAMP_FORMATまたはNLS_TIMESTAMP_TZ_FORMATのいずれかがRR書式マスクを使用する場合、DBMS_CLOUD.EXPORT_DATAを使用してデータをParquetにエクスポートするには、書式値をサポートされている値に変更する必要があります。次に例を示します。
ALTER SESSION SET NLS_DATE_FORMAT = "MM/DD/YYYY";
ALTER SESSION SET NLS_TIMESTAMP_FORMAT = 'YYYY-MM-DD HH:MI:SS.FF';
ALTER SESSION SET NLS_TIMESTAMP_TZ_FORMAT='YYYY-MM-DD HH:MI:SS.FF TZH:TZM';値を変更した後、NLS_SESSION_PARAMETERSビューを問い合せて変更を検証できます。
SELECT value FROM NLS_SESSION_PARAMETERS
WHERE parameter IN ('NLS_DATE_FORMAT','NLS_TIMESTAMP_FORMAT','NLS_TIMESTAMP_TZ_FORMAT');NLS_DATE_FORMATが設定されている場合は、DATEデータ型の列に適用されます。NLS_TIMESTAMP_FORMATが設定されている場合は、TIMESTAMPデータ型の列に適用されます。NLS_TIMESTAMP_TZ_FORMATが設定されている場合は、TIMESTAMP WITH TIME ZONEデータ型の列に適用されます。
詳細は、「日時パラメータ」および「NLSデータ・ディクショナリ・ビュー」を参照してください。